Ajax 访问系统&x27;正在尝试获取非对象的属性';
创建一个系统,如果我按下一个按钮,我可以访问一个地方,如果我按下了错误的按钮,则取消访问。这将上载到数据库并从数据库中删除,具体取决于是否单击了按钮。目前,尽管我得到了错误:Ajax 访问系统&x27;正在尝试获取非对象的属性';,ajax,laravel,laravel-5,laravel-5.4,Ajax,Laravel,Laravel 5,Laravel 5.4,创建一个系统,如果我按下一个按钮,我可以访问一个地方,如果我按下了错误的按钮,则取消访问。这将上载到数据库并从数据库中删除,具体取决于是否单击了按钮。目前,尽管我得到了错误: 'Trying to get property of non-object' and the place_id seems to be the problem as its being shown as null. 表:地点:id等 访问:id、地点id、用户id、时间戳 控制器:` $place_id =
'Trying to get property of non-object' and the place_id seems to be the problem as its being shown as null.
表:地点:id等
访问:id、地点id、用户id、时间戳
控制器:`
$place_id = $request['placeId'];
$place = Place::find($place_id);
$visited = Auth::user()->visitors()->where('place_id', $place_id)->first();
if($visited == null) {
$visited = new Visit();
$visited->user_id = Auth::user();
$visited->place_id = $place->id;
$visited->save();
return null;
} else{`
$visited->delete();
return null;
}
阿贾克斯:
有没有办法解决这个问题,让这个地方的id识别出被访问的地方
<div class="place-name">
<a class="btn btn-not-visited visit" >Visited?</a>
<h1>$place->name</h1>
<p>$place->address</p>
</div>
我猜想我在按钮的某个地方丢失了一个“place\u id,$place->id”?在尝试写入数据库时是否会发生此错误?从数据库中读取,或者单击按钮时从网页中读取?似乎在控制器中。问题似乎出在$place\u id为空时,仅当
$place\u id!=0
或$place\u id>0
如果place\u id返回空值,该问题将如何解决。问题是,当访问按钮被放置在place.blade上时,place_id返回空值。我需要$place_id不为空。如果'placetId'中有't',或者它应该是'placeId'$place_id=$request['placetId']
您的placeId
是否为空?所以这一行placeId=event.target.parentNode.parentNode.dataset['place_id']有问题代码>您试图从何处获取此值?如果不确定如何遍历DOM,请使用console.log(placeId)代码>设置此值后…返回未定义,如果我使用控制台日志,则返回未定义。这是您当前代码的预期行为。我的想法是,您可以尝试不同的选项,找到DOM节点,它返回您想要的place\u id
。请发布您的源文件,以及您的place
定义的确切位置,从那里可以获取place\u id
并填充到您的jsplaceId
变量中。。。
<div class="place-name">
<a class="btn btn-not-visited visit" >Visited?</a>
<h1>$place->name</h1>
<p>$place->address</p>
</div>
var placeId = 0;
var token = '{{ Session::token() }}';
var urlVisit = '{{ route('visitss') }}';
$('.visit').on('click', function(event){
event.preventDefault();
placeId = event.target.parentNode.parentNode.dataset['place_id'];
$.ajax({
method: 'POST',
url: urlVisit,
data: { place_id: placeId, _token: token}
})
.done(function() {
});
});