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 关注
- 151 浏览
添加回答
举报