使用控制器返回视图存在于Views文件夹以外的其他位置

时间:2016-10-24 11:45:36

标签: laravel module

如何从Laravel中的控制器返回视图而不是视图文件夹?我正在将一个项目划分为模块。我想从主项目的控制器返回模块的视图。怎么做? 因为目前我尝试路由到其他链接时显示:

  

compile.php第8895行中的MethodNotAllowedHttpException

路线/ web.php:

Route::get('/', function () {
return view('welcome');
});
Route::post('/navpage1',[
'uses'=>'ProjectController@nextpage1',
'as'=>'navpage1'
]);
Route::post('/navpage2',[
'uses'=>'ProjectController@nextpage2',
'as'=>'navpage2'
]);

控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

class ProjectController extends BaseController 
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

 public function nextpage1()
{
    return   view('C:/xampp/htdocs/larve/app\Modules\Course_Entry\views\welcome');
}

public function nextpage2()
{
    return view('C:/xampp/htdocs/larve/app\Modules\Log_in_blog_post\views\welcome');
}
}

应用/模块/ ServiceProvider.php:

<?php namespace App\Modules;
class ServiceProvider extends  \Illuminate\Support\ServiceProvider
{
public function boot()
{
    $modules = config("module.modules");
    while (list(,$module) = each($modules)) {
        if(file_exists(__DIR__.'/'.$module.'/web.php')) {
            include __DIR__.'/'.$module.'/web.php';
        }
        if(is_dir(__DIR__.'/'.$module.'/Views')) {
            $this->loadViewsFrom(__DIR__.'/'.$module.'/Views', $module);
        }
    }
}
public function register(){}
}

我知道我的控制器有问题,但我只想弄清楚如何做到这一点...... 我在这里提供了更多代码:Laravel program divided into modules

1 个答案:

答案 0 :(得分:0)

更改app-> config-&gt; view.php。

中的路径
'paths' => [
     realpath(base_path('app\Modules\Log_in_blog_post\views')),
 ],

然后在控制器中使用: - 查看(&#39; welcome&#39;)。