Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 尝试使用Laravel 5.1和Vue 2在非对象上获取属性_Php_Laravel_Vuejs2 - Fatal编程技术网

Php 尝试使用Laravel 5.1和Vue 2在非对象上获取属性

Php 尝试使用Laravel 5.1和Vue 2在非对象上获取属性,php,laravel,vuejs2,Php,Laravel,Vuejs2,我有一个加载了从Laravel传来的数据的url。我使用刀片式语法将数据放入vue数据中,如下所示: data: { id: "{!! ($header->id) !!}", vendor: '{!! $header->vendor_name !!}', orderDate: '{!! $header->orderDate !!}', list: [], } Route::get('part-order/find-inventory/inv',

我有一个加载了从Laravel传来的数据的url。我使用刀片式语法将数据放入vue数据中,如下所示:

data: {
    id: "{!! ($header->id) !!}",
    vendor: '{!! $header->vendor_name !!}',
    orderDate: '{!! $header->orderDate !!}',
    list: [],
}
Route::get('part-order/find-inventory/inv', 'PartOrderController@findInventoryNumber');
到目前为止还不错。数据设置正确

然后,有一个方法在单击表中的行时触发:

methods: {
   findInventoryItem: function(rowId) {
       var header = this.id;
       url = '{!! url('part-order/find-inventory') !!}' + '?headerId=' + header + '&rowId=' + rowId;
       window.location.href = url;
   }
url设置正确

单击表行时发生错误。这个错误会弹出

Trying to get property of non-object (View: /code/zone/resources/views/parts/part-order.blade.php)
请注意,错误不是与请求的url有关,而是与现有url有关

该错误由以下行触发:

id: "{!! ($header->id) !!}",

关于这里发生的事情有什么想法吗?

此错误表示
$header
null
。您需要检查它是否为
null
。比如:

{!! is_null($header) ? 0 : $header->id !!}
或:


好吧,这是新手犯的错误,但我发现了问题所在。最糟糕的是我以前犯过这个错误。这与拉威尔或Vue无关。有时,解释你的问题并与他人讨论有助于识别和找出你做错了什么。谢谢@Laerte与我讨论。它帮助我找到了解决办法

问题出在路线上。下面的路线有干扰

Route::get('part-order/{id}', 'PartOrderController@showOrder');
我要求的路线是

Route::get('part-order/find-inventory', 'PartOrderController@findInventoryNumber');
因为我的第一条路线在第二段中有一个变量,所以如果不添加第三段,我就不能使用另一条路线。因为第二段被解释为变量,所以在我的请求中从未到达它

我把路线改成这样:

data: {
    id: "{!! ($header->id) !!}",
    vendor: '{!! $header->vendor_name !!}',
    orderDate: '{!! $header->orderDate !!}',
    list: [],
}
Route::get('part-order/find-inventory/inv', 'PartOrderController@findInventoryNumber');

请注意,除非您明确希望允许输出HTML,否则您几乎应该始终使用
{{}}
而不是
{!!!!}
。否则您将面临安全漏洞。请编写
{{dd($header)}
并将结果发布到此处。@laert结果是一个集合对象。相当大,可以张贴在这里。你在寻找什么?我试图理解为什么$header在本例中不被视为对象。当您发送数组或字符串而不是对象并试图从中获取属性时,通常会发生此错误。这里的问题是我的方法请求/零件订单/查找库存?。。。。这就是发生错误时浏览器中url标识符上显示的内容。但当它离开url/parts/part订单时,会显示错误。这就好像它试图在继续访问请求的url之前重新加载当前url一样。如果试图重新加载当前url;然后它会抛出错误,因为data.id值是由laravel从服务器传递过来的。它一开始不是空的,那么它如何变成空的呢?@Robbie我无法回答,因为我看不到代码。很高兴知道我帮你解决了这个问题!