Я хочу использовать тот же код формы для обеих форм 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. Возможно ли это?
Какую ошибку выбрасывают? – user3158900
Просто из любопытства, почему не будет '{!! Форма :: model ($ MyObject, ['action' => $ action]) !!} 'work? – Schlaus
Вы являетесь «эхом» для массива. Вам не нужно эхо-переменную, чтобы сделать ее динамичной. –