#php #laravel
#php #laravel
Вопрос:
У меня проблема, из-за которой я не могу отобразить панель навигации при отображении содержимого моей страницы. В настоящее время выводом моего кода является неопределенная переменная: navContent (Просмотр: C:UsersComputer AngelDocumentsblogresourcesviewslayoutscomponentsnavbar.blade.php ). Мой желаемый результат — показать мою панель навигации, а затем содержимое моей страницы под ней.
Это мой код для dynamic.blade.php где должны отображаться как панель навигации, так и содержимое страницы.
<!DOCTYPE html>
<html>
<head>
</head>
@component('layouts.components.navbar')
@endcomponent
<body>
{!!$pageContent->pageContent!!}
</body>
</html>
The navbar.blade.php который также является моим компонентом, показан ниже:
<nav>
@slot('$navContent')
@foreach($navContent as $nav)
<a href="{!!$nav->navLink!!}">{!!nav-navName!!}</a>
@endforeach
@endslot
</nav>
Это мой PageController@show:
public function show($URI)
{
$pageContent = DB::table('pages')->where('URI',$URI)->first();
return view('page.dynamic', ['pageContent' => $pageContent]);
}
Это мой Nav.php
protected $fillable = ['navName', 'navLink'];
Это мой Page.php
protected $fillable = ['title', 'URI', 'pageContent'];
Это миграция моих страниц:
Schema::create('pages', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('URI');
$table->text('pageContent');
$table->timestamps();
});
Это моя миграция navs:
Schema::create('navs', function (Blueprint $table) {
$table->id();
$table->string('navName');
$table->string('navLink');
$table->timestamps();
});
Это мой web.php:
Route::get('/page/{URI}', 'PageController@show');
Для моего полного кода используйте ссылку на репозиторий GitHub ниже:
https://github.com/xiaoheixi/blog
Спасибо, что нашли время прочитать и попытаться мне помочь!
Ответ №1:
Я только что исправил свою проблему, выполнив мои текущие шаги, перечисленные ниже.
- Я смотрел https://www.youtube.com/watch?v=THN5Q8JBeDM.
- Добавлено «$ navContent = Nav::all (); view()-> share (‘navContent’, $ navContent);» для AppServiceProvider.php в общедоступной функции boot().
- Добавьте use App Nav; в AppServiceProvider.php .
- Удалите @slot(‘$ navContent’) и @endslot в navbar.blade.php .
- Откройте терминал и запустите php artisan serve, он должен работать.
Наконец, наилучшие пожелания, надеюсь, что вы все передадите свой профессиональный опыт и получите высшее образование.