1

我这样做是为了可以访问索引以外的页面。这完美地工作。在管理面板中,我可以查看除/admin. 所以我可以查看/admin/posts/admin/media页面等。

我收到错误

试图获取非对象的属性

它在我的 show.blade 中引用了这一行:

<header class="masthead" style="background-image: url('/storage/{{ $page->image }}')">

我理解这是因为没有$page->image对象,并且相信/admin/something被视为帖子,/admin页面在哪里,所以它试图寻找这个不存在的对象?

我想要的是/admin页面像以前一样加载,同时保留pages/show.blade.php整个网站前端提供的功能。我现有的代码几乎不用考虑/admin

我确实尝试过

$host = $_SERVER['REQUEST_URI'];
if($host !== '/admin') 
{
    my show.blade.php content here
}

但这仍然无法避免管理页面被视为页面,因此仍在查看 show.blade 文件,因此我需要创建一个自定义/admin页面,我宁愿现在坚持使用 out of盒子航海者管理页面。

路线:

Route::get('/', 'TrainController@index');

Route::get('post/{slug}', 'TrainController@show');
Route::get('{slug}', 'PagesController@show');


Route::group(['prefix' => 'admin'], function () {
    Voyager::routes();

页面控制器

<?php

namespace App\Http\Controllers;

use App\Page;
use Illuminate\Http\Request;

class PagesController extends Controller
{
    public function show($slug)
    {
        $page = Page::findBySlug($slug);
        return view('page.show', ['page' => $page]);
    }
}

页面模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Page extends Model
{
    public static function findBySlug($slug)
    {
        return static::where('slug', $slug)->first();
    }
}

页面/show.blade.php

@extends('layouts.index')

@section('header')


<!-- Page Header -->
<header class="masthead" style="background-image: url('/storage/{{ $page->image }}')">
    <div class="overlay"></div>
    <div class="container">
        <div class="row">
            <div class="col-lg-8 col-md-10 mx-auto">
                <div class="page-heading"> <h1>{!! $page->title !!}</h1>
                    <span class="subheading"></span>
                </div>
            </div>
        </div>
    </div>
</header>

@stop

@section('content')

<!-- Main Content -->

    <div class="container">
        <div class="row">
            <div class="col-lg-8 col-md-10 mx-auto">
                {!! $page->body !!}
            </div>
        </div>
    </div>


@stop
4

1 回答 1

3
if (!Request::is('admin'))
{
    Route::get('{slug}', 'PagesController@show');
}
于 2018-04-13T02:26:21.313 回答