Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 17.09.2017 19:43:27

Обязательная перменная в роуте приводит к ошибке

роуты

Route::group(['prefix' => 'admin'], function(){
    
    //главная страница админки
	Route::get('/',function(){
		if (view()->exists('admin.index')){
			$admin_data = [
							'title' => 'товары'
			];
			return view('admin.layouts.app',$admin_data);
		}
	});


	//листинг товаров из базы
	Route::get('goods',['uses'=>'AdminGoodControllerList@execute','as'=>'goodslist']);
	
	//показываем форму для добавления
	//Route::get('/addgood',['uses'=>'AdminGoodControllerAddGood@execute','as'=>'addgood']);

	Route::match(['get','post'],'/addgood',['uses'=>'AdminGoodControllerAddGood@execute','as'=>'addgood']);

	//листинг товаров из базы
	Route::match(['get','post','delete'],'/editgood/{good?}',['uses'=>'AdminGoodControllerEditGood@execute','as'=>'editgood']);

});

контролер AdminGoodControllerEditGood

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;
use Validator;
use App\Good;
use App\Image;

class AdminGoodControllerEditGood extends Controller
{
    //показываем форму добавления в базу продукта
	public function execute(Good $good, Request $request){


		if ($request->isMethod('post')){
			
			$input = $request->except('_token');		

			$massages = [
				
					'required'=>'Ты обязан заполнить это :attribute',
					'unique'=>'Эта хрень :attribute должна быть уникальной',
					'numeric'=>'Вэтом поле :attribute только цифры можно юзать'
			];

	    	$rullers = [
					'title' => 'required|max:255',
					'description' => 'required',
					'courier'=> 'required|unique:goods,courier,'.$input['id'],
					'sku'=> 'required|unique:goods,sku,'.$input['id'],
					'price'=> 'required|numeric',
					'quantity'=> 'required|numeric'
			];
	    	
			$validator = Validator::make($input,$rullers,$massages);
			
			if($validator->fails()) {
				return redirect()
						->route('editgood',['good'=>$input['id']])
						->withErrors($validator);
			}


	        $arr = [
	    			'title' => 'Редактор',
	    			'data' => $good
	    	];

		}


        $arr = [
    			'title' => 'Редактор',
    			'data' => $good
    	];

        return view('admin.formEdit',$arr);
    	
    }
}

/editgood/{good?} - если так то по запросу:
/admin/editgood/9 - будет идти все ок
но если я в роутах напишу:
/editgood/{good} - те good как обязательная переменная, делаем такой же запрос
/admin/editgood/9 - пишет обязательная переменная good пропущена
Так же не должно быть. Что делать?

Не в сети

Подвал раздела