Вопрос:

laravel 5.5 Отсутствуют обязательные параметры для [Route:

php mysql laravel eloquent laravel-5.5

4218 просмотра

1 ответ

259 Репутация автора

Файл маршрута: -

Route::get('/Observation/{type}/list/{status}', 'ObservationController@index')->name('list_observation');

Текущий URL: localhost: 8088 / hse / public / Observation / status / list / 2

контроллер:

protected $type ;
    protected $status ;
    public function __construct(Request $request)
    {
        $this->middleware('auth')->except('getBuildings');
        $this->status = Route::current()->parameter('status');
        $this->type = Route::current()->parameter('type');
    }

    public function index()
    {
        if ($this->status == 'all'){
        $observations = Observation::all();
        }
        else {
            $observations = Observation::where($this->Type(),$this->status)->get();
        }
       return view('observations._list')->with('observations',$observations);
    }
    public function Type(){
        switch ($this->type){
            case 'building':
                $this->type = 'building_id';
                break;
            case 'status':
                $this->type = 'status_id';
                break;
        }
        return $this->type;


    }

Ошибка при отображении: отсутствуют обязательные параметры для [Route: list_observation] [URI: Observation / {type} / list / {status}]. (Посмотреть:

Когда я удаляю метод $ this-> Type () в строке запроса, ошибка исчезает.

Возвращаемое значение для метода $ this-> Type (): status_id

Который является правильным именем столбца БД.

Автор: user2873860 Источник Размещён: 08.11.2017 10:57

Ответы (1)


1 плюс

1035 Репутация автора

Решение

Возможно, где-то в viewили где вы генерируете этот URL, вы не передаете все необходимые аргументы в маршрут.

Автор: ako Размещён: 09.11.2017 07:01
32x32