4 回答

TA貢獻1856條經驗 獲得超5個贊
首先你可以制定一條改變語言的路線
Route:: get('lang/{lang}', function ($locale) {
session(['locale' => $locale]);
return \Redirect::back();
})
第2步:中間件
public function handle($request, Closure $next)
{
App::setLocale(session('locale'));
return $next($request);
}
可以建群后
Route::group(['middleware' => 'language'],function(){
//routes with u want change language
Route::get('/edit/{employee}', 'EmployeesController@edit')->name('edit');
Route::patch('/edit/{employee}', 'EmployeesController@update')->name('update');
});
并且您忘記在每條路線中發送語言

TA貢獻1772條經驗 獲得超8個贊
如果您也在路線中經過,locale那么應該如下所示:
網頁.php
Route::get('your-Own-route/{lang}/{employee}','YourController@edit');
控制器編輯方法
public function edit($lang,Employee $employee)
{
$companies = Company::get();
return view('employee.edit', compact('employee', 'companies'));
}

TA貢獻1772條經驗 獲得超6個贊
我認為你必須像這樣修改你的路線
在 web.php 中
Route::get('your-route/{lang}/{id}','YourController@edit');
在你的控制器中
public function edit($lang,Employee $employee)
{
$companies = Company::get();
return view('employee.edit', compact('employee', 'companies'));
}

TA貢獻1802條經驗 獲得超5個贊
你的參數不對。正如堆棧跟蹤所示,控制器方法需要Employee模型的實例,但您正在傳遞一個字符串
改變
public function edit(Employee $employee)
到
public function edit(Request $request, $employeeId) // you can remove $request if you dont intend to perform redirects
所以最后你的代碼看起來像
public function edit(Request $request, $employeeId)
{
$employee = Employee::find($employeeId);
$companies = Company::all(); // use all instead of get if you arent going to perform selections.
return view('employee.edit', compact('employee', 'companies'));
}
$employeeId注:您可能需要處理根據提供的信息找不到員工的情況
- 4 回答
- 0 關注
- 242 瀏覽
添加回答
舉報