将数据从刀片视图传递到laravel中的控制器

问题描述:

我在刀片中使用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

你可以试试这条路。

  1. 在routes.php文件文件首先要建立这样的路线

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

  2. 然后使用形式路线网址

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

可能是文件名是问题。 Laravel基本上也提供了默认控制器。为什么不更改名称并尝试使用新名称或完整路径。

你将从路线文件夹还航线文件,并使用laravel 5.3

您可以通过使用途径,而不是控制@方法解决它。

在你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 

您可以使用

Form::model 

改为。 示例:

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