【问题标题】:Laravel (1/1) NotFoundHttpException in RouteCollection.php line 179Laravel (1/1) NotFoundHttpException in RouteCollection.php 第 179 行
【发布时间】:2019-01-09 12:48:38
【问题描述】:

我在 laravel 中提交表单时遇到问题。我的表单结构是这样的。

<form  class="form-group" action="{{ route('writepoem') }}" 
method="post" name="publish" enctype="multipart/form-data"  
onsubmit="return validateForm();">
   <input type="hidden" name="_token" value="{{ Session::token() }}">
   <input type="text" name="user">
   <textarea name="poem"></textarea>
   <input type="submit" value="save">
</form>

我的 web.php 文件有这个路由。

Route::post('/writepoem', ['uses'=>'PoemController@postCreatePoem','as'=>'writepoem']);

我的诗控制器。

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Poem;

class PoemController extends Controller
{ 
    public function postCreatePoem(Request $request)
    {   
        //validation
        $poem=new Poem();
        $poem->poem=$request['poem'];
        $poem->user=$request['user'];



        //save poem
        $request->user()->poems()->save($poem);
        return redirect()->route('feed');
    }
}

在提交我的表单时,我得到了这个例外。

(1/1) NotFoundHttpException

在 RouteCollection.php 第 179 行。

路由可能有什么问题?

【问题讨论】:

  • 诗歌创作了吗?可能是return redirect()-&gt;route('feed'); 的问题。另外,$poem-&gt;poem=$request['poem']; $poem-&gt;poem=$request['user']; 看起来也不对;您将 $poem-&gt;poem 两次设置为不同的变量。还有,没见过$request["poem"];;不确定是否有问题,但我通常使用$request-&gt;input("poem")$request-&gt;poem(避免$request-&gt;input("user"); 的第二次使用)
  • @TimLewis 不,这首诗没有被创建,它抛出异常 NotFoundHttpException。
  • 首先,缺少 csrf_token (但这可能不是这里的问题)。表单的实际作用是什么?你能检查一下并告诉我们吗?
  • 嗯...乍一看,一切正常;使用正确的方法(="post" 代表 Route::post())正确命名了路线(否则会出现错误)。试试{{ url("/writepoem") }} 看看会不会有什么不同。
  • @TimLewis 我试过 {{ url("/writepoem") }} 但我仍然遇到异常。

标签: laravel laravel-5


【解决方案1】:

我有同样的问题,但现在我解决了我的问题。

您需要按照以下步骤操作。如果您编写了正确的代码,然后出现此错误,那么您需要按照步骤操作。

  1. 清除缓存php artisan route:clear&php artisan route:cache一一运行命令。如果您的问题还没有解决,那么您还需要执行第二步

  2. 运行此命令重新加载作曲家composer dump-autoload

【讨论】:

    【解决方案2】:

    我发现我的表单是通过

    链接到主页的
    `require resource_path().'/sub-folder/write.php'`
    

    这就是导致错误的原因。

    我将表单移至主文档,我的问题已解决。

    【讨论】:

      【解决方案3】:

      如果您的路由指向 site.com/writepoem 并且该路由返回 notfoundexception;这意味着两种可能的事情;

      1) 你的路由有一个组,并且这个组有一个 url 的父命名空间

      Route::group(['prefix' => 'poems'], function() {
          Route::post('/writepoem', ['uses'=>'PoemController@postCreatePoem','as'=>'writepoem']);
      });
      

      2) 或者你的路由文件被缓存了。请尝试; php artisan route:clear & php artisan route:cache

      【讨论】:

        猜你喜欢
        • 2018-07-29
        • 2018-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-02
        • 1970-01-01
        • 2016-07-01
        • 1970-01-01
        相关资源
        最近更新 更多