2013-07-27 3 views
1

У меня есть форма:Laravel: как передать значение из формы в контроллер?

{ Form::open(array('action' => '[email protected]', $client->id)) }} 
    {{ Form::text('rate', '', array('placeholder' => 'Enter new custom client rate...')) }} 
    {{ Form::submit('Submit', array('class' => 'btn btn-primary')) }} 
{{ Form::close() }} 

Как передать свой $ client-> значение идентификатора через форму моего метода контроллера?

Я в настоящее время метод контроллера, который выглядит следующим образом:

public function postUserRate($id) 
{ 
    $currentUser = User::find(Sentry::getUser()->id); 
    $userRate = DB::table('users_rates')->where('user_id', $currentUser->id)->where('client_id', $id)->pluck('rate'); 

    if(is_null($userRate)) 
    { 
    ... 
    }else{ 
    .... 
    } 
} 

И журнал ошибок говорит «Отсутствующий аргумент 1 для RatesController :: postUserRate()»

Любые идеи о том, как пройти этот $ client-> id в мой контроллер, чтобы я мог использовать его, как я хочу выше?

+0

Вы может создать скрытое поле в вашей форме со значением '$ client-> id', и оно будет отправлено вместе с другими полями –

ответ

16

Добавить {{ Form::hidden('id', $client->id) }} в форму. Затем, когда он будет опубликован, вы можете получить его значение за обычный с Input::get('id').

Кроме того, удалите аргумент метода .

+0

Ах, это было глупо от меня. Спасибо Джеффри! – Josh

+0

Это одно решение, но что произойдет, если злоумышленник перехватит html-форму с помощью инструментов, таких как burp, и изменит скрытое значение? Если вы знаете решение об этом, просто дайте мне знать. –

3

Вы просто использовать:

Form::open(array('action' => array('[email protected]', $user->id)))

  • переменная $user->id передается в качестве аргумента методу method, и этот последний должен Получать аргумент, а также, например, так: method($userId)

Источник: Laravel documentation

+0

Спасибо, друг ... :) – Jestin

+0

Добро пожаловать;) – zianwar

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