PostsController @ destroy未在Laravel中定义

时间:2017-11-05 12:33:07

标签: php laravel methods

坚持这个错误任何帮助将不胜感激。我得到的错误如下:

Action App \ Http \ Controllers \ PostsController @ destroy未定义。 (查看:C:\ xampp \ htdocs \ lsapp \ resources \ views \ posts \ show.blade.php)

我在PostsController中使用了“destroy”方法并使用了Laravel的最新视觉。

{!!Form::open(['action' => ['PostsController@destroy', $post->id], 'method' => 'POST', 'class' => 'pull-right'])!!}
    {{Form::hidden('_method', 'DELETE')}}
    {{Form::submit('Delete', ['class' => 'btn btn-danger'])}}
{!!Form::close()!!}

7 个答案:

答案 0 :(得分:1)

尝试一下。 我将ACTION更改为URL。

import { from, Observable } from "rxjs";

let numbers = [1, 5, 10];
let source = from(numbers);

答案 1 :(得分:1)

语法在laravel版本中经常更改。因此,请务必检查您的版本。 现在,我认为您可能正在使用Laravel 5.4.36版或其他版本。 因此,我认为尝试如下将“ ACTION”更改为“ URL”。

{!!Form::open(['url' => ['PostsController@destroy', $post->id], 'method' => 'POST', 'class' => 'pull-right'])!!}
    {{Form::hidden('_method', 'DELETE')}}
    {{Form::submit('Delete', ['class' => 'btn btn-danger'])}}
{!!Form::close()!!}

答案 2 :(得分:1)

您的action方法很适合您编写它的方式。从字面上看,该错误意味着您没有名为PostsController@destroy的控制器。

只需运行:

php artisan route:list

如果控制器存在,则name列将为您提供前缀和方法Post.destroy,而在同一行中,action列将为您提供控制器名称PostsController@destroy 。显然,如果这两个条件不存在;您收到错误:

Action App\Http\Controllers\PostsController@destroy not defined.

答案 3 :(得分:0)

您可以尝试使用此action之类的action('WelcomeController@log_in')辅助函数,或者只需将操作设置为为您提供控制器的路径。

答案 4 :(得分:0)

你错过了一步。

回想一下html表单中的action属性:

action="{{ you put a url here, not a controller action }}"

然后考虑您的路线文件,您应该在其中添加您决定在上面{{ }}内引用的路线,并将其映射到路线文件中的控制器操作

我建议在不使用Form ::的情况下这样做,然后你会更好地理解它(而且它不会更复杂)。

答案 5 :(得分:0)

juste你需要在表单中更改方法表单,如下所示删除:

{!!Form::open(['action' => ['PostsController@destroy', $post->id], 'method' => 'DELETE', 'class' => 'pull-right'])!!}
    {{Form::hidden('_method', 'DELETE')}}
    {{Form::submit('Delete', ['class' => 'btn btn-danger'])}}
{!!Form::close()!!}

答案 6 :(得分:0)

在Laravel 8中,该路线的完整说明如下:

{!!Form::open(['action' => ['App\Http\Controllers\PostsController@destroy', $post->id], 
'method' => 'POST', 'class' => 'float-right'])!!}