Php 2参数id和lang route中间件语言环境组don';t工作-拉威尔5.5
我对中间件组中的单参数url或路由没有问题。但是当有两个参数(lang和id)如show或edit时,我会得到一个错误。代码如下。我在哪里犯错 文件路径app/Http/Middleware Locate.phpPhp 2参数id和lang route中间件语言环境组don';t工作-拉威尔5.5,php,laravel,laravel-5.5,Php,Laravel,Laravel 5.5,我对中间件组中的单参数url或路由没有问题。但是当有两个参数(lang和id)如show或edit时,我会得到一个错误。代码如下。我在哪里犯错 文件路径app/Http/Middleware Locate.php <?php namespace App\Http\Middleware; use Closure; class Locale { /** * Handle an incoming request. * * @param \Illumi
<?php
namespace App\Http\Middleware;
use Closure;
class Locale
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request->method() === 'GET') {
$segment = $request->segment(1);
if (!in_array($segment, config('app.locales'))) {
$segments = $request->segments();
$fallback = session('locale') ?: config('app.fallback_locale');
$segments = array_prepend($segments, $fallback);
return redirect()->to(implode('/', $segments));
}
session(['locale' => $segment]);
app()->setLocale($segment);
}
return $next($request);
}
}
刃锉
{{ route ('reservations.update', ['lang'=> $lang, 'id' => $reservation->id]) }}
控制器文件
public function reservationEdit($id){
$check = Reservation::find($id);
$this->authorize('view', $check);
$hotels = DB::table('hotels')->select('hotel_name', 'id')->get();
return view('reservations.reservation-edit', ['reservation' => Reservation::findOrFail($id)], ['hotels' => $hotels]);
}
在中间件“Locale”中,使用forgetParameter仅将id参数传输到控制器
app()->setLocale($request->segment(1));
$request->route()->forgetParameter('locale');
return $next($request);
在中间件“Locale”中,使用forgetParameter仅将id参数传输到控制器
app()->setLocale($request->segment(1));
$request->route()->forgetParameter('locale');
return $next($request);
“不工作”是什么意思?什么不起作用?你预计会发生什么事情?你好,Felippe,我的刀片路由存在问题?删除了'lang'属性,然后配置控制器文件添加了两个参数$lang=null,$id。现在可以工作了。但不是健康。我将继续。谢谢,最好的敬意“不工作”是什么意思?什么不起作用?你预计会发生什么事情?你好,Felippe,我的刀片路由存在问题?删除了'lang'属性,然后配置控制器文件添加了两个参数$lang=null,$id。现在可以工作了。但不是健康。我将继续。谢谢,祝你好运