坚持这个错误任何帮助将不胜感激。我得到的错误如下:
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()!!}
答案 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'])!!}