• 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');
    });

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

  • 相关阅读:
    了解web前端基本常识
    解决移动端输入法挡住输入框的办法
    简单实现根据选项显示不同的表单
    关于“使用本服务器,放到正规的第三方服务器就不安全”的想法
    简单实现网页换肤功能
    Java项目引入eclipse注意事项
    hexo博客发布注意事项
    hexo博客出现“Cannot GET/xxxx”的错误
    C#中ToString()格式详解
    SQLSERVER 时间日期函数,查询今天日期、昨天、一个星期、半年前的数据
  • 原文地址:https://www.cnblogs.com/e0yu/p/16459994.html
Copyright © 2020-2023  润新知