Lỗi thuộc tính "name" khi bỏ biến vào trong blade template

Mình có 2 bảng như sau:
Bảng cars:

Bảng car_model:

Mình lấy ra danh sách xe và cần biết mỗi xe thuộc kiểu nào, mình đã làm như sau:
Mình khai báo class cars như sau:

     class cars extends Model
    {
        
        //protected $table = "cars";
        public function car_model()
        {
            return $this->belongsTo('App\models\content\car_model','model_id','id');
        }   
    }

Còn class car_model như sau:

class car_model extends Model{}

Trong Controller mình làm như sau:

    public function list(){
            $car = cars::all();
            $list_model = car_model::all();
            return view('listcar', compact('car','list_model','list_style'));
        }

Trong view liscar.blade.php mình có đoạn như sau:

    foreach($list_model as $l)
    <?php
                                           $cat_name = App\models\content\cars::find(1)->car_model->name;
                                         ?>
         <li class="item" data-id="3805" value="{{ $l->price }}" data-cat="{{ $cat_name }}" data-seat="{{ $l->sit_number}}" data-style="" data-fuel="">
                                </li>
    @endforeach

Khi mình chạy website thì web báo lỗi như thế này:

Nhưng khi mình kiểm tra dữ liệu dd($cat_name) trong thẻ <?php ?> thì nó như thế này:


Mình không hiểu tại sao view không nhận được thuộc tính name của loại xe ạ? Bác nào giúp mình với! Deadline tới nơi rồi! :frowning:

Thử cái này xem …

@foreach($list_model as $l)
<?php $cat_name = App\models\content\cars::find($l->id)?>

<li class=“item” data-id=“3805” value="{{ $l->price }}" data-cat="{{ $cat_name->name }}" data-seat="{{ $l->sit_number}}" data-style="" data-fuel="">
</li>
@endforeach
1 Like

Mình làm như vậy rồi mà vẫn bị bạn ơi :frowning:

car_model bạn khai báo như nào nhỉ?
Thêm dòng này thử xem nhé

Cars

public function car_model(){
        return $this->belongsTo('App\models\content\car_mode','id');
    }

Cars_model

public function cars()
    {
        return $this->hasMany('App\models\content\cars','id','model_id');
    }
2 Likes

Ra rồi nha mấy bác, lỗi này nguyên nhân là do LỘN BẢNG, cái này:

foreach($list_model as $l)
    <?php
                                           $cat_name = App\models\content\cars::find(1)->car_model->name;
                                         ?>
         <li class="item" data-id="3805" value="{{ $l->price }}" data-cat="{{ $cat_name }}" data-seat="{{ $l->sit_number}}" data-style="" data-fuel="">
                                </li>
    @endforeach

sẽ được sửa thành như sau:

foreach($car as $c)
         <li class="item" data-id="3805" value="{{ $c->price }}" data-cat="{{ $c->car_model->name }}" data-seat="{{ $c->sit_number}}" data-style="" data-fuel="">
                                </li>
    @endforeach

Cám ơn các bác đã giúp đỡ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?