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