繁体   English   中英

尝试在Laravel中获取列的属性时遇到问题

[英]I have a problem with try to get a property of a column in Laravel

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

试图获得非对象的属性

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

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

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

我有一个关于汽车销售的网站,我在这里展示了一张包含所有客户的桌子以及每个客户购买的汽车数量,当我点击“查看更多详情......”按钮时,网页会重定向到另一个网页,显示有关所选客户的更多详细信息。

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

注意:我以ADMIN身份进入本网站。

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

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');
}

有关更多详细信息,请添加表格及其关系:

Picture1_Car -客户

Picture2_Customer-日期1

Picture3_Customer-日期2

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

你必须向view()函数传递一个数组,其中包含您的视图将使用的变量,例如:

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

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

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

如果错误在

ShowCustomerCarDetails.blade.php

那么问题在于控制器(我们现在将此控制器称为CustomerController.php )和返回上述视图文件的函数(如showCustomerCarDetails() )。

因此,可能的解决方案是检查控制器CustomerController.php和函数showCustomerCarDetails() 请在下面找到调试问题的清单,

  1. 首先,请检查您是否在showCustomerCarDetails函数中正确获取$customer变量,方法是将其转储为dd($customer) 在这里,我假设您知道如何从Customer模型获取$customer变量。 它很简单,比如$customer=Customer::findOrFail($id)$id参数是通过URL传递给控制器​​和函数的参数。
  2. 现在,如果您从数据库获取客户数据,则使用您的首选方法发送$customer变量以及视图文件,例如return view('CarShop.ShowCustomerCarsDetails', compact($customer))

我希望它能解决问题,如有任何疑问请不要犹豫:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM