Php 尝试使用Laravel 5.1和Vue 2在非对象上获取属性
我有一个加载了从Laravel传来的数据的url。我使用刀片式语法将数据放入vue数据中,如下所示: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',
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我无法回答,因为我看不到代码。很高兴知道我帮你解决了这个问题!