У меня нет проблем с URL-адресом или маршрутом с одним параметром в группе промежуточного программного обеспечения.Но я получаю сообщение об ошибке, когда есть два параметра (lang и id), такие как show или edit.Коды следующие.Где я делаю ошибки?
Путь к файлу приложения / Http / Middleware
Locate.php
<?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);
}
}
файл маршрута web.php
Auth::routes();
Route::prefix('{lang?}')->middleware('locale')->group(function($lang=null) {
Route::get('/', 'HomeController@index');
Route::get('reservation-edit/{id}', 'ReservationController@reservationEdit');
});
файл лезвия
{{ 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]);
}