【问题标题】:Error: Undefined routing for create form action field - laravel 5.8错误:创建表单操作字段的未定义路由 - laravel 5.8
【发布时间】:2020-03-27 18:27:41
【问题描述】:

我想从 create.blade 插入数据。但是遇到了未定义路由的错误。

Route [Question.store] not defined. (View: ......\myapp\resources\views\questions\create.blade.php)

这是我定义的路线

Route::resource('questions', 'QuestionController');
Route::resource('options', 'OptionController');
Route::resource('votes', 'VoteController');

QuestionControler 代码示例:

   public function create()
        {
            return view('questions.create');
        }    

   public function store(Request $request)
        {
            //             
        }

我的创建刀片表单

<form method="post" action="{{route('question.store')}}">

如何解决这个问题。我用过 laravel 5.8

谢谢!

【问题讨论】:

  • 不要放代码图片,代码是文本,把它添加到你的问题中......输入php artisan route:list并查看你的路线名称,你使用了错误的路线名称
  • action="/question/index" 这样使用
  • php artisan route:list 帮助我找到正确的路线。它解决了这个问题。我可以知道为什么我必须将“questions.store”而不是“question.store”放在“questionController”中有“store”功能的地方吗? @lagbox
  • 因为您将资源名称定义为questions .. Route::resource('questions', ...) ... 第一个参数是资源名称

标签: laravel routing undefined


【解决方案1】:

您已将资源路由定义为questions,但将其用作question。这导致了错误。如下图所示

<form method="post" action="{{route('questions.store')}}">

【讨论】:

    【解决方案2】:

    使用此命令列出您的所有路线

    php artisan route:list
    

    您的路线将是 questions.store 而不是 question.store(如果有前缀)

    更多信息请阅读Resource controller

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 2017-11-23
      • 2018-06-27
      • 2019-09-10
      • 2015-01-07
      • 2016-08-06
      • 2019-01-15
      相关资源
      最近更新 更多