我注意到变量"user_id"可能会在 php 的未来版本中抛出错误



我在 PHP Laravel 中访问刀片中的数据时收到此错误。

使用未定义的常量user_id - 假设"user_id"(这将抛出 PHP 未来版本中的错误( (查看:/home/beatsbaj/public_html/resources/views/user/reset-password.blade.php(

#Here is My Controller's function
public function resetPassword()
{
try
{
$token_id = Crypt::decrypt(Request::segment(2));
$token = Crypt::decrypt(Request::segment(3));
$data = Remembertoken::select('id', 'token_id', 'token', 'user_id')->where('token_id', $token_id)->get()->first();
if(!$data)
{
return abort(404);
}
else if($data)
{
if($data->token != $token)
{
return abort(404);
}
else if($data->token == $token)
{
return view('user.reset-password', ["token_id"=>$token_id, "user_id"=>$data->user_id]);
}
}
}
catch(Exception $e)
{
abort(404);
}
}

当我访问变量时,我的 Ajax 部分在刀片中user_id。

<script>
$(document).ready(function(){
$("#reset-pass-form").submit(function(event) {
event.preventDefault();
var form = $(this);
form = form.serialize(form);
$.ajax({
url:"{{url('/reset-password-now')}}",
type:"post",
data:form,
success:function(response){
console.log(response);
console.log("{{user_id}}");      // Getting Error Here
},
error:function(xhr, ajaxOptions, thrownError){
alert(xhr.status);
},
});
});
});
</script>

它假设是 '{{ $user_id }}' 而不是 {{ user_id }}。请注意$的差异。

此外,为什么要向用户抛出异常?我认为您应该有一个默认的错误页面或简单地重定向到另一个页面(或上一页(

为什么会出现此错误?

没有任何$的变量称为常量。 必须首先定义一个常量:http://php.net/manual/en/language.constants.php

解决方案

您的视图中缺少一个$

console.log("{{ $user_id }}");

相关内容

最新更新