2015-04-02 8 views
-1

В routes.php я следующий маршрутомОтсутствует аргумент 1 в контроллере Laravel

Route:: get('/crm/hotel/occupant/{id}', array('uses'=>'[email protected]','as'=>'crm.hotel.occupant')); 

для вышеуказанного маршрута ... если я поставил контроллер, как это это работа ... но если я удалить $ room_id в модели, называемой как

$ hotel = new Occupant();

.. я получил ошибку недостающий аргумент 1 ....

public function occupant($room_id) 
    { 
     $hotel = new Occupant($room_id); 
     // manage page 
     return $hotel->occupant($room_id); 
    } 

, как ее решить ...

+1

Любезно Редактировать вопрос ... – Rajesh

+0

Показать код Жителя конструктора, пожалуйста. –

ответ

0

Вы можете сделать {ID} необязательны.

Это достигается за счет этого:

Route:: get('/crm/hotel/occupant/{id?}',  array('uses'=>'[email protected]', 'as'=>'crm.hotel.occupant')); 
0

, как объяснено @vinweb вы должны добавить знак вопроса ? к вашему параметру id, Route:: get('/crm/hotel/occupant/{id?}', array('uses'=>'[email protected]','as'=>'crm.hotel.occupant'));

но вы также должны настроить свой переменная до значения по умолчанию (пример, взятый из official doc,):

Route::get('user/{id}', function ($id) { 
    return 'User '.$id; 
}); 

Таким образом, в вашем случае это будет, вероятно, будет что-то вроде этого:

public function occupant($room_id = null) 
{ 
    $hotel = new Occupant($room_id); 
    // manage page 
    return $hotel->occupant($room_id); 
} 
Смежные вопросы