简体   繁体   中英

laravel 4 - two routes on same controller function

I want to do something I don't know if it is feasible.

here's my routes.php

Route::get('mockups/user/skills/{skill}', 'MockupsController@user');
Route::get('mockups/user/tours/{tour}', 'MockupsController@user');
Route::get('mockups/user', 'MockupsController@user');

and my MockupsController@user function

public function user($skill=null,$tour=null){
    if($tour ==null && $skill != null)
        return View::make('demo/mockups/user/public',array('skill'=>$skill));
    if($tour!=null && $skill ==null)
        return View::make('demo/mockups/user/public',array('tour'=>$tour));
    return View::make('demo/mockups/user/public');

}

if I get the /mockups/user/tours/tour1 url, the controller calls the demo/mockups/user/public view without sending the $tour variable. how to make it works?

EDIT

public function user($skill=null,$tour=null){
    echo var_dump($skill);
    echo var_dump($tour);
    die();
    if($tour ==null && $skill != null)
        return View::make('demo/mockups/user/public',array('skill'=>$skill));
    if($tour!=null && $skill ==null)
        return View::make('demo/mockups/user/public',array('tour'=>$tour));
    return View::make('demo/mockups/user/public');

}

displays

string(5) "tour1" NULL 

I dont understand why you are making it so complicated. Why not just do

Route::get('mockups/user/skills/{skill}', 'MockupsController@skills');
Route::get('mockups/user/tours/{tour}', 'MockupsController@tours');
Route::get('mockups/user', 'MockupsController@user');

public function skills($skill)
{
    return View::make('demo/mockups/user/public',array('skill'=>$skill));
}

public function tours($tour)
{
    return View::make('demo/mockups/user/public',array('tour'=>$tour));
}

public function user()
{
    return View::make('demo/mockups/user/public');
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM