Laravel 5 Implicit Route Not Resoving

时间:2016-01-15 01:10:50

标签: php laravel-5 laravel-5.1 laravel-routing

完全编辑这篇文章,因为我意识到我在解释事物方面做得很差,并且反映了已经实施的一些变化。

问题:我的应用程序前端正常,通过app \ public访问时效果很好。我添加了一个后端,并希望使用不同的主布局。我已将后端命名为Crud。我创建了Crud \ UserController,它具有以下内容:

public function __construct()
{  $this->middleware('auth'); }



public function getIndex() {
  return view('crud'); }

在我的routes.php文件中,我有以下内容:

Route::controller('crud', 'Crud\UserController');

我已经尝试将该路由放在中间件组的内部和外部。没有工作。我有一个文件crud.blade.php,它存在于resources \ views。

每次尝试访问app / public / crud时,问题都是来自apache的404。具体来说,这个错误:

The requested URL /app/public/crud was not found on this server.

我不知道为什么服务器无法找到crud.blade.php的路由

ETA:当我尝试访问此页面时,apache访问日志只显示正常的404。 apache错误日志显示没有错误。

2 个答案:

答案 0 :(得分:0)

view()假设指向一个视图文件,类似于example.blade.php,它应包含访问localhost:app / crud时要显示的内容。然后你可以在没有.blade.php的情况下查看('example')。 从您的代码中,更改

class UserController extends Controller{
    //Route::controller('crud', 'Crud\UserController');

    public function __construct()
    {
        $this->middleware('auth');
    }
    public function getIndex() {  
        return view('/');
    }
}

class UserController extends Controller{
    //Route::controller('crud', 'Crud\UserController');

    public function __construct()
    {
        $this->middleware('auth');
    }
    public function getIndex() {  
        return view('crud'); // crud being your view file
    }
}

答案 1 :(得分:0)

我认为你在混合概念。试图到达这里总会引发错误:

localhost://app/crud

要输入您的应用,只需尝试访问:

http://localhost

附加您在routes.php文件中注册的路线。在你的例子中,它是:

http://localhost/crud

如果您注册

Route::get('/crud', 'Crud\UserController@index')

然后你需要在UserController中使用一个Index方法,它应该返回一个视图(在你的例子中)

class UserController extends Controller{

    public function __construct()
    {
        $this->middleware('auth');
    }

    public function index() 
    {  
        return view('crud');
    }
}

P.S:关于隐式控制器,你有文档here