Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 2参数id和lang route中间件语言环境组don';t工作-拉威尔5.5_Php_Laravel_Laravel 5.5 - Fatal编程技术网

Php 2参数id和lang route中间件语言环境组don';t工作-拉威尔5.5

Php 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

我对中间件组中的单参数url或路由没有问题。但是当有两个参数(lang和id)如show或edit时,我会得到一个错误。代码如下。我在哪里犯错

文件路径app/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);
    }
}
刃锉

{{ 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。现在可以工作了。但不是健康。我将继续。谢谢,祝你好运