Try using:
Route::get('setting/{id?}', function($key,$name,$id = null) {
if($id) {
return "Ceci est ma route avec mon id {$id}";
} else {
return "This is my route without my id";
}
});
Your function should know about all the parameters in the url.
In your case, the id parameter is the third, and your function catches only the first parameter
Yes! it works . but I suddenly found another problem. In the context here , many controller will start from that route prefix
Route::group(['prefix' => 'book/{key}/{name}', 'as' => 'book.profile'], function()
{
Route::get('/', 'HomeController@Home');
Route::get('setting/{id?}', 'UserController@setting');
Route::get('diary', 'UserController@listDiary');
Route::get('diary/edit/{num}', 'UserController@editDiary');
Route::get(.....
});
How in this context there. Because I will have many routes. And if I have each time add the key $ $ name parameters and this may be quite complicated .
I thought the constructor of the class by sending both parameters. But I dry a little. Thank you for your help @moinecumihai
I didn't quite understand what you wanted to say.
If you don't want a controller to use those parameter, you simply take the controller out of the group. You can always to this
Route::group(array('prefix'=>'foo1'),function(){
Route::any('ba1r',array('uses=>'FooController@ba1r'));
Route::any('bar1/{id}',array('uses=>'FooController@bar1Show'));
});
Route::any('test1',array('uses'=>'TestController@method1'));
Route::any('test2',array('uses'=>'TestController@method2'));
Route::group(array('prefix'=>'foo2/{param}'),function(){
Route::any('bar2',array('uses=>'FooController@bar2'));
Route::any('bar2/{id}',array('uses=>'FooController@bar2Show'));
});
Oh, now I understood,
You were referring to something like this, and you don't want to get all three parameters in the method.
class UserController{
public function editDiary($book,$name,$id){
}
}
I don't have an answer for this question for now, but I will try looking into it. P.S.: If you find it first, please let me know. It's something I, too, need.
Yes it's that. No problem, for now I must to work on another module where I did not need to use the route for the moment. But Monday I would return to this part here at work, and I think look on my side this weekend at home. If I find I come back here post a solution.
Sign in to participate in this thread!
The Laravel portal for problem solving, knowledge sharing and community building.
The community