2015-08-08 3 views
3

у меня есть:Laravel передать значение методу по маршруту

Route::delete('admin/sanitise/{id}/delete', ['as' => 'admin.sanitise.delete', 'uses' => '[email protected]']); 

С:

public function delete($id, $hard = false) { 
    $product= Product::find($id); 
    if($hard) { 
     $product->destroy(); 
    } else { 
     $product->delete(); 
    } 
} 

Это позволяет как не-админы и админы удалять продукты, но я только хочу админов иметь возможность жесткого удаления.

Указанный маршрут доступен только для администраторов.

Что мне нужно, чтобы установить маршрут, чтобы установить $ hard to true?

+0

Добавить в качестве необязательного параметра http://laravel.com/docs/5.1/routing#parameters-optional-parameters – nathanmac

ответ

2

Вы бы сделать что-то вроде этого:

Route::delete('admin/sanitise/{id}/delete/{hard?}', ['as' => 'admin.sanitise.delete', 'uses' => '[email protected]']); 

Знак вопроса в {hard?} говорит Laravel, что это необязательный параметр маршрута.

Когда вы используете этот маршрут где-то, вы бы установить массив Params как

$url = route('admin.sanitise.delete', ['id' => $someId, 'hard' => true]); 

Если вы не установите «жесткий» ключ в параметрах маршрута, по умолчанию false от вашей функции будет использоваться определение.

Смежные вопросы