如何在laravel模块中使用路由访问视图?

tzdcorbm  于 2023-06-07  发布在  其他
关注(0)|答案(5)|浏览(396)

我目前正在做学校的作业,我已经阅读了关于Laravel模块的内容,我目前正在使用这个https://nwidart.com/laravel-modules包。
我已经设法创建模块、迁移和模型。现在我想通过一个简单的链接从route访问一个模块。就像这样:

<a href="{{ route('crm.index') }}">CRM</a>

我已经创建了3个模块的核心,客户关系管理和销售名称。基于互联网上的信息,我知道我可以用localhost/crm or sell or core访问它们。现在我怎么能解决我的问题?
我也试过{{ route('core::index') }}。谢谢
更新1:每个模块中的视图如下所示:Resources\views\index.blade.php如果你看上面的链接,你会看到我说的一个例子。
更新2:路线:当我用包创建模块时,每个模块都有1个路由。
Laravel根模块routes\web

Route::get('/', function () {
  return view('welcome');
});

和CRM路由模块Modules\CRM\routes\web\和其余的如下所示,但名称不同:

Route::prefix('core')->group(function() {
  Route::get('/', 'CoreController@index');
});
ehxuflar

ehxuflar1#

route() helper用于命名路由。你可以使用url() helper来匹配一个uri,或者你必须为你的路由添加一个名字,比如:

Route::prefix('core')->group(function() {
  Route::get('/', 'CoreController@index')->name('core.index');
});

然后你就可以

<a href="{{ route('core.index') }}">CRM</a>
f2uvfpb9

f2uvfpb92#

尝试为您的路由设置名称
https://laravel.com/docs/5.8/routing#named-routes

Route::prefix('core')->group(function() {
  Route::get('/', 'CoreController@index')->name('crm.index');
});

然后这个就能用了

<a href="{{ route('crm.index') }}">CRM</a>
kq0g1dla

kq0g1dla3#

我在模块控制器中使用这样的地址查看页面:

return view("module::pages.main");

module是你的模块名。

hmmo2u0o

hmmo2u0o4#

在最新版本6中,我更改了视图资源配置,并从模块文件夹中读取,如下所示:

'paths' => [
    base_path('Modules/Duet/Resources/views'),
    base_path('Modules/anotherModule/Resources/views'),
],
rdlzhqv9

rdlzhqv95#

您必须在模块中设置路由的名称,例如:

Route::get('/yourRoute', function(){
         return ('yourView');
    })->name('yourname');

您的视图可以访问您的路线名称。

相关问题