新手发问 ! Laravel admin 根据ID判断资料

新手发问

刚入门半年多,想试着做一个Project练习,
爬了好多文,实在都没有什么方向,
想请大神们,能否帮忙一点入门。

目的

我在Laravel Blade设置一个Form表单,
表单内选择连动Models(Car),Value 值为$ Car-> ID,
表单内的资料传入另个模型(Reservation)。

在后台Laravel admin想要根据 ID
判断 Models(Car)对应的Title值,
而不是在后台显示ID,或者显示对应的标题。

图片截图




本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 12

Reservation Model 内 使用一对一关联
car字段 关联 car表id

 public function car()
    {
        return $this->hasOne(Car::class,'id','car');
    }

使用

 $grid = new Grid(Reservation::with('car'));
.....
 $grid->column('car.title')

文档:模型关联《Laravel 7 中文文档》

3年前 评论

@Ciro laravel版本多少 试试这个

$grid = new Grid(Reservation::query()->with('car'));
3年前 评论

谢谢哥,我照着你的方法使用,但是跳出ERROR。

我应该要再仔细理解Laravel 文档

file

file

file

3年前 评论

@Ciro 看错了

public function car()
    {
    //Car 是car表的模型
        return $this->hasOne(Car::class,'id','car');
    }
3年前 评论

问题有点多,真的谢谢你。
我调整过后,显示29行ERROR,是这段预加载有问题吗

ERROR

TypeError In Grid.php line 175 :
Encore\Admin\Grid::__construct(): Argument #1 ($model) must be of type Illuminate\Database\Eloquent\Model, Illuminate\Database\Eloquent\Builder given, called in /Users/liushouping/Desktop/awcms/app/Admin/Controllers/ReservationsController.php on line 29

ReservationsController

protected function grid()
    {
        $grid = new Grid(Reservation::with('car'));  // 29
        $grid->column('car.title'); 
        return $grid;
    }

file

file

file

3年前 评论

Version 1.8.11 也是一樣,我也試了下方代碼

$grid->model()->with('car');

TypeError In Grid.php line 175 : Encore\Admin\Grid::__construct(): Argument #1 ($model) must be of type Illuminate\Database\Eloquent\Model, Illuminate\Database\Eloquent\Builder given, called in /Users/liushouping/Desktop/awcms/app/Admin/Controllers/ReservationsController.php on line 29

3年前 评论

@Ciro 我很久没用laravel-admin了 还是这种写法 不用改了

  $grid = new Grid(new Reservation());
3年前 评论

@Latent 有用过,但是Laravel admin 超过60S 系统当掉,谢谢你花时间回覆

3年前 评论

@Ciro

file 看下这个把 提示new Grid() 载入的不是一个model? laravel-admin.org/docs/zh/2.x/mode...

3年前 评论

$grid = new Grid(new Reservation()); . 是创建新的Models吗 我想说如果关联了,先取消预加载,还是出现ERROR。 . 还是谢谢你,我继续搜寻有没有类似字段关联的线索。

3年前 评论

我是这样用的,不知道你那边可不可以

首先是 Order Model 关联 User

file

然后在 laravel admin 中,这样写

file

我这边是没问题的,而且已经已经上线一年多了。可能版本有点老,你可以这样试试

3年前 评论

昨天晚上关联有出来了, 但是还是没有达到目的。


我想要根据ID关联另个Models 判断 Car 的Title, 从前台Form select 传来的Vaule 值是Car( Models )的ID主键, 传到到Reservation(Models)的 Car。


根据Reservation(Models)的 Car, 判断在Car(Models)的ID主键进行关联。


//Reservation ( Models ) 我的理解是根据在 Reservation ( Models ) -> Car 对应在 Car ( Models ) -> ID 显示Car(Models)的Title。 但是我使用下面的代码,会跑不出来,系统当掉。

public function car()
{
    return $this->hasOne(Car::class,'id','car');
}

图片截图

file

file

file

file

file

file

3年前 评论
seth-shi 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!