routes.php第24行中的1/1 ErrorException:尝试获取非对象的属性

时间:2016-01-09 23:47:30

标签: laravel-5

我有一个名为 app 的localhost数据库,它有两个名为 customers orders 的表,我正在使用 laravel关系从数据库中获取结果,结果应该是订单和客户针对订购的每个订单,因为我已经编写了这段代码,但这是一个错误的帮助。

routes.php文件

Route::get('orders', function(){
    $orders = App\Orders::all();    //here App=folder, Orders=file or class
    foreach($orders as $order){
        echo $order->detail." ordered by ".$order->customer->name."<br/>";
    }
});

Orders.php

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;

class Orders extends Model{ 
    public function customer() {
        return $this->belongsTo('App\Customer');
    }
}

Customers.php

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;

class Customer extends Model{

}

错误

Whoops, looks like something went wrong.

1/1
ErrorException in routes.php line 24:
Trying to get property of non-object
in routes.php line 24
at HandleExceptions->handleError('8', 'Trying to get property of non-object', 'C:\xampp\htdocs\blog\app\Http\routes.php', '24', array('orders' => object(Collection), 'order' => object(Orders))) in routes.php line 24
at RouteServiceProvider->{closure}()
at call_user_func_array(object(Closure), array()) in compiled.php line 7298
at Route->runCallable(object(Request)) in compiled.php line 7285
at Route->run(object(Request)) in compiled.php line 6954
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 8952
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 8935
at Pipeline->then(object(Closure)) in compiled.php line 6955
at Router->runRouteWithinStack(object(Route), object(Request)) in compiled.php line 6944
at Router->dispatchToRoute(object(Request)) in compiled.php line 6929
at Router->dispatch(object(Request)) in compiled.php line 1935
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 8952
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 2438
at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 17
at VerifyCsrfToken->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 12083
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 10785
at StartSession->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 11789
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 11738
at EncryptCookies->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in compiled.php line 2478
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in compiled.php line 8944
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 8935
at Pipeline->then(object(Closure)) in compiled.php line 1891
at Kernel->sendRequestThroughRouter(object(Request)) in compiled.php line 1880
at Kernel->handle(object(Request)) in index.php line 53

1 个答案:

答案 0 :(得分:1)

我在代码中看到的唯一可能导致此错误的是background: url(http://couchdb.apache.org/image/sprite.png) no-repeat; 。如果没有与订单关联的客户,则$order->customer->name将为空,并且在尝试访问空对象上的$order->customer属性时将出错。