Laravel 5.2从控制器返回视图

时间:2016-08-14 10:12:41

标签: controller routing laravel-5.2

我在子目录中定义了一个视图" admin"这是一个编辑表格。提交时,将使用以下代码将其传递给控制器​​:

class ThisSiteController extends Controller
{
    public function updateSite(Request $request)
    {
        $thissite = DB::table('this_site')->where('id',1)->get();
        $thissite->headline = $request->headline;
        $thissite->save();  
        return view('admin.editfront')->with('site', $thissite);
    };
}

正在更新一个标题,但我总是得到

NotFoundHttpException in RouteCollection.php line 161:

虽然调用编辑的路径是(并且工作正常):

Route::get('/admin/editfront', function() {
    $thissite = DB::table('this_site')->where('id',1)->get();
    return view('admin.editfront')->with('site', $thissite);
});

3 个答案:

答案 0 :(得分:0)

如果您要提交表格,请确保该路线正在使用帖子。

Route::post('/admin/editfront', 'ThisSiteController@updateSite');

如果这不是问题,您可以显示您的表单代码,以及更新的路由吗?

修改

class ThisSiteController extends Controller
{
    public function updateSite(Request $request)
    {
        DB::table('this_site')
            ->where('id',1)
            ->update(['headline' => $request->input('headline')]);
        $thissite = DB::table('this_site')->where('id',1)->first();
        return view('admin.editfront')->with('site', $site);
    };
}

答案 1 :(得分:0)

我建议您将编辑操作也移动到控制器方法,对updateSite方法的以下更改将修复更新问题。如果您使用过模型,那会简单得多。

ThisSiteController@editSite

还要将路由编辑前线路由到action="{{ action('ThisSiteController@editSite') }}"方法。

表单操作可以XmlNode n1; XmlNode n2; n1.ParentNode.AppendChild(n2);

答案 2 :(得分:0)

您在路由中使用get请求,这可能会导致问题。

如果您在表单中使用POST方法,请将路线更改为:

Route::post('/admin/editfront',ThisSiteController@updateSite});

如果您可以显示整个错误消息或路由文件,那将非常有用。