MeEdu---开发插件之【视图无法继承】

使用MeEdu开发插件,今天遇到一个大无语的问题,处理了将近一个半小时,最终处理了。

这个问题就是:视图模板无法继承。

具体原因:

在Provider.php文件里面注册的路由是这样的:

// 注册路由
$this->loadRoutesFrom(__DIR__ . '/routes/web.php');
$this->loadRoutesFrom(__DIR__ . '/routes/api.php');
$this->loadRoutesFrom(__DIR__ . '/routes/backend.php');

然后写的路由是这样的:

Route::get('/school', SchoolController::class . '@index')->name('school.index');
Route::get('/school/details/{id}', SchoolController::class . '@show')->name('school.show');

Route::get('/major', SchoolMajorController::class . '@index')->name('major.index');
Route::get('/major/details/{id}', SchoolMajorController::class . '@show')->name('major.show');

最后使用模板继承:

@extends('layouts.app')

@section('content')
    <h1>HELLO MEEDU.</h1>
@endsection

然后就报500错误,原因是这里继承的 layouts.app 文件是最外层的目录。

如何修改?需要有web,global.share 中间件

方法一:前台路由注册采用这种方式:

// 注册路由
Route::middleware(['web', 'global.share'])->group(base_path('addons/School/routes/web.php'));

方法二:修改路由

首先是这样注册的前台路由:

// 注册路由
$this->loadRoutesFrom(__DIR__ . '/routes/web.php');

然后修改路由:

Route::group(['middleware' => ['web', 'global.share']], function () {
  Route::get('/school', SchoolController::class . '@index')->name('school.index');
  Route::get('/school/details/{id}', SchoolController::class . '@show')->name('school.show');

  Route::get('/major', SchoolMajorController::class . '@index')->name('major.index');
  Route::get('/major/details/{id}', SchoolMajorController::class . '@show')->name('major.show');
});

也是醉了,这个问题我整了一个半小时。

posted @ 2022-07-09 00:41  帅到要去报警  阅读(55)  评论(0编辑  收藏  举报