2015-05-13 5 views
0

Я хочу использовать тот же код формы для обеих форм Create и Update. Я использую следующую функцию Лезвия из формы Helper Laravel в:Laravel/Blade - можно ли эхо-переменную ввести в параметр функции?

{!! Form::model($MyObject, ['action' => '{{ $action }}']) !!} 

Если вы видите, что я вторя {{ $action }} в параметр action, поэтому он может быть динамичным. Но Laravel бросает

ErrorException в UrlGenerator.php линии 561:

Action App \ Http \ Контроллеры \ < PHP эхо-е ($ действия); ? > не определено. (Вид:> /path/to/project/folder/resources/views/baz.blade.php)

ошибка всякий раз, когда я это делаю. Если я пытаюсь делать следующее:

{!! Form::model($MyObject, ['action' => $action]) !!} 

Затем выводится форма тег выглядит следующим образом:

<form method="POST" action="http://mysite.app/mycontroller/%7Bmycontroller%7D" accept-charset="UTF-8"> 

И отправки формы бросает MethodNotAllowed.

Это как мои функции контроллера настроены:

public function create() 
{ 
    $view_data = [ 
     'type'  => 'Create', 
     'action' => '[email protected]', 
     'my_object' => new MyObject 
    ]; 

    return view('myviews.form', $view_data); 
} 

public function edit($id) 
{ 
    $view_data = [ 
     'type'  => 'Edit', 
     'action' => '[email protected]', 
     'my_object' => MyObject::find($id) 
    ]; 

    return view('myviews.form', $view_data); 
} 

Но Laravel просто бросает ошибку. Я не могу найти способ передать переменную в параметр в теге Blade. Возможно ли это?

+0

Какую ошибку выбрасывают? – user3158900

+0

Просто из любопытства, почему не будет '{!! Форма :: model ($ MyObject, ['action' => $ action]) !!} 'work? – Schlaus

+0

Вы являетесь «эхом» для массива. Вам не нужно эхо-переменную, чтобы сделать ее динамичной. –

ответ

1

Просто используйте переменную непосредственно:

{!! Form::model($MyObject, ['action' => $action]) !!}

+0

Но теперь это просто выводит это: '

' ... – Jack

+0

@Jack Может u '{{ dd ($ action)}} 'перед формой? Похоже, что переменная имеет значение null –

+0

См. Этот вопрос: http://stackoverflow.com/questions/15450303/laravel-4-formopen-set-action Вы также можете попробовать альтернативный подход и установить действие '$ view_data [' '] = действие (' MyController @ create ', $ extra_params_as_needed); 'который вы можете прочитать больше на http://laravel.com/docs/5.0/helpers#urls – Schlaus

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