2016-09-26 151 views
-1

我在刀片中使用Form::open(['action' => '[email protected]']);將數據從視圖傳遞到控制器。然後,我得到了一個錯誤:將數據從刀片視圖傳遞到laravel中的控制器

Action App\Http\Controllers\[email protected] not defined.

這是正確的,因爲我的控制器是在這個地址:

App\Modules\Somethings\Controllers\

所以,我該怎麼做才能解決這個問題。

謝謝。

+0

將完全限定名稱空間添加到模板中? – Andrew

+0

是你的想法:'Form :: open(['action'=>'App \ Modules \ Somethings \ Controllers \ Controller @ method']);' 我試過了。這個錯誤變成了'Action App \ Http \ Controllers \ App \ Modules \ Somethings \ Controllers \ Controller @ method not defined.' – Chung

+0

等待,等一下,不應該表單動作導致實際導致控制器的url?你在用什麼laravel版本? – Andrew

回答

0

你可以試試這條路。

  1. 在routes.php文件文件首先要建立這樣的路線

    Route::any('first/second/{id}', [ 'uses' => 'App\Modules\Somethings\[email protected]' ]);

  2. 然後使用形式路線網址

    {!! Form::open(['url' => 'first/second/5', 'method' => 'put']) !!}

0

可能是文件名是問題。 Laravel基本上也提供了默認控制器。爲什麼不更改名稱並嘗試使用新名稱或完整路徑。

你將從路線文件夾還航線文件,並使用laravel 5.3

1

您可以通過使用途徑,而不是控制@方法解決它。

在你routes.php文件定義的資源在你的控制器

Route::resource('posts', 'PostController', ['before' => 'csrf']); 

指向然後你可以使用URL ::路線()方法來得到正確的路線。

{!! Form::open(['url' => URL::route('posts.update', [$post->id]), 'method' => 'put', 'files' => false]) !!} 

要查看所有路線以及它們是如何運行的別名以下工匠命令:

L5.x

php artisan route:list 

L4.x

php artisan routes 
0

您可以使用

Form::model 

改爲。 示例:

Form::model($user, ['method' => 'PATCH', 'action' => ['[email protected]', $user->id], 'files' => true]) 
// do you form stuff 
Form::close() 
相關問題