当用户首次访问索引路线上的网站时,我将获得用户的时区。
我在路线的index.blade.html文件上有一个ajax请求。 “/”
我将ajax路线发布到此路线“/ custom_sessions”。
错误即将
jquery-1.12.4.min.js:4 POST http://127.0.0.1:8000/custom_sessions 500(内部服务器错误)
// route the ajax is hitting
Route::post('/custom_sessions', 'CustomSessionsController@store');
-
// controller
class CustomSessionsController extends Controller
{
public function store()
{
// when i remove this line the ajax request is successful with no errors in the console
session('timezone' => $request('timezone'));
}
}
-
// have this in my head in my html
<meta name="csrf-token" content="{{ csrf_token() }}">
-
// ajax script at the bottom of my index.blade.php file
$.ajax({
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
type: "POST",
url: "/custom_sessions",
data: {
"timezone": "PST"
}
});
答案 0 :(得分:0)
这是你的问题:
session('timezone' => $request('timezone'));
抛出语法错误。第一个参数不是array
,因此使用=>
将抛出
语法错误,意外'=&gt;' (T_DOUBLE_ARROW)
应该是
session()->put("timezone", $request->input("timezone"));
下一个问题是您的功能不使用$request
,因此您的store()
功能应为:
public function store(Request $request){
session()->put("timezone", $request->input("timezone"));
}
另外,请务必直接引用Request
:
public function store(\Illuminate\Http\Request $request){ ... }
或将其添加为班级顶部的use
声明:
use Illuminate\Http\Request;
class CustomSessionsController extends Controller { ... }