首页 > 解决方案 > 我在尝试获取 Laravel 中列的属性时遇到问题

问题描述

我已经知道我将要解释的这个问题的问题与其他问题类似。

试图获取非对象的属性

试图在 laravel 5.4 中获取非对象的属性

试图在 laravel 5.5 中获取非对象的属性

但我的问题与这些问题或另一个类似问题不完全相同。

我有一个关于汽车销售的网站,其中显示了所有客户的表格以及每个客户购买的汽车数量,当我单击“查看更多详细信息...”按钮时,网页重定向到另一个网页显示有关所选客户的更多详细信息。

在那个网页上,我有另一个表格,显示客户购买的汽车数量、日期、型号和汽车品牌,以及一个按钮,您可以添加客户购买的新车。

注意:我以管理员身份进入本网站。

当我单击此按钮添加新车时。我得到这个错误。

ErrorException (E_ERROR) 试图获取非对象的属性“id”(查看:C:\xampp\htdocs\car-shopping\resources\views\CarShop\ShowCustomerCarsDetails.blade.php)

此错误消息强调的代码行是:

<td>{{$customer->id}}</td>

这是我单击上一页上的按钮(说:查看更多详细信息...)后出现的客户详细信息表。在页面 ShowCustomerCarDetails.blade.php 之前。

<!--ShowCustomerCarDetails.blade.php-->

<tbody> 
  <tr>


    <td>{{$customer->id}}</td> <!--THIS LINE-->


    <td>{{$customer->name}}</td>
    <td>{{$customer->address}}</td>
    <td>{{$customer->phoneNumber}}</td>

        @if($car->id == $customer->car_id)
            <td>{{$car->model}}</td>
        @endif           
    </tr>
</tbody>

注意:“ShowCustomerCarDetails.blade.php”的上一页称为“ ShowCustomersAndCars_index.blade.php ”有一个名为“查看更多详细信息...”的按钮,该按钮重定向到“ShowCustomerCarDetails.blade.php”

而这就是客户购买的台车的车身。

<!--At the end of the website 
ShowCustomerCarDetails.blade.php -->

<thead>
  <tr>
     <th>CAR NAME</th>
     <th>CAR MODEL</th>
     <th>CAR PRICE</th>
     <th>CAR YEAR</th>
     <th>PURCHASE DATE</th>
     <th>OWNER</th>
    </tr>

</thead>

<tbody>
    @foreach($date as $carDateBuy)
        @if($customer->id == $carDateBuy->customer_id)
            <tr>
                <td>{{$car->name}}</td>             
                <td>{{$car->model}}</td>
                <td>{{$car->price}}</td>
                <td>{{$car->year}}</td>
                <td>{{$carDateBuy->date}}</td>
                <td>{{$carDateBuy->customer_name}}</td>
            </tr>
        @endif
    @endforeach
</tbody>

注意:表格日期,当客户购买汽车时,它会自动填写客户信息。

以及在同一网页中添加新车的按钮。

<div>
  <a href="{{route('NewCars')}}">
    <input type="button" name="AddCars" value="ADD NEW CAR">
  </a>
</div>

以及web.php中的路由

Route::get('ListCustomersCar/NewCars',['as' => 'NewCars', 'uses' => 'CustomerCarController@createNewCars']); 

CustomerCarController方法createNewCars():_

public function createNewCars(){

  return view('customer.NewCars');
}

有关更多详细信息,我添加了表格和他的关系:

图1_汽车-客户

图片2_客户-日期1

图片3_客户-日期2

我在我的网站上做错了什么?如果我遗漏了什么,我会更新这个问题。谢谢!

标签: phplaravelphpmyadmin

解决方案


view()您必须将包含视图将使用的变量的数组传递给函数,例如:

return view('customer.newCars', 
    [
        'customer' => $customer,
        'car' => $car,
        ...
    ]
);

如果要传递雄辩的对象,请尝试:

return view('customer.newCars', compact($customer, $car, ...));

推荐阅读