2015-05-13 19 views
0

我想爲我的創建和更新表單使用相同的表單代碼。我使用從Laravel的Form助手在後的葉片功能:Laravel/Blade - 是否可以將變量回顯到函數的參數中?

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

如果你看到我呼應{{ $action }}action參數,因此它可以是動態的。但Laravel拋出

ErrorException在UrlGenerator.php行561:

行動應用程序\ HTTP \控制器\ < PHP回聲E($行動); ? >未定義。 (查看:> /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

只是出於好奇,爲什麼不會'{!! Form :: model($ MyObject,['action'=> $ action])!!}'工作? – Schlaus

+0

您正在'迴應'數組的價值。您不需要回顯變量以使其變爲動態。 –

回答

1

只需直接使用的變量:

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

+0

但現在它只輸出:'

'...... – Jack

+0

@Jack Can you'{{ dd($ action)}}'之前的表單?看起來像變量爲空 –

+0

請看這個問題:http://stackoverflow.com/questions/15450303/laravel-4-formopen-set-action 你也可以嘗試一種替代方法,並設置'$ view_data ['action '] = action('MyController @ create',$ extra_params_as_needed);'你可以在http://laravel.com/docs/5.0/helpers#urls閱讀更多內容 – Schlaus

相關問題