Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
При выводе товара из бд происходит ошибка
(4/4) ErrorException Undefined variable: menus (View: D:\OSPanel\domains\blog\resources\views\sidebar.blade.php) (View: D:\OSPanel\domains\blog\resources\views\sidebar.blade.php) (View: D:\OSPanel\domains\blog\resources\views\sidebar.blade.php), переменная menus это таблица в бд(меню которое выводится), до того как создал новый контроллер вывода товаров меню выводилось хорошо и без ошибок, подскажите может я как то не так понял суть работы этого фрейма!? Вот код:
//Роуты//
Route::get('/', 'SiteController@index');
Route::get('/', 'MenuController@menu');
Route::get('/', 'TovarController@tovar');
Route::get('/contacts', 'SiteController@contacts');
Route::get('/category/{id}', 'SiteController@category');
//контроллеры//
<?php
namespace App\Http\Controllers;
use App\Menu;
use Illuminate\Http\Request;
class MenuController extends Controller
{
public function menu()
{
$menus = Menu::all();
return view('index', compact('menus'));
}
}
<?php
namespace App\Http\Controllers;
use App\Tovar;
use Illuminate\Http\Request;
class TovarController extends Controller
{
public function tovar()
{
$tovars = Tovar::all();
return view('index', compact('tovars'));
}
}
//Модели//
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Menu extends Model
{
protected $table = 'menus';
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tovar extends Model
{
protected $table = 'tovars';
}
// сам сайдбар, в котором переменная не определенна
<div class="content__left">
<a href="" class="content__left-title">Каталог товаров</a>
@foreach ($menus as $menu)
<ul class="left__menu">
<li class="left__menu-item"><a href="{{url("public/$menu->url")}}">{{ $menu->title }}</a></li>
</ul>@endforeach
</div>
Не в сети
На первый взгляд - у тебя шаблон вывода в контроллере указан index, туда и передается переменная, а ищется она, судя по ошибке, в sidebar
Не в сети
Я код контроллеров приложил
Не в сети
Очевидно что вы не правильно понимаете принцип маршрутизации запросов.
Попробуйте например Route::get('/', 'MenuController@menu'); Route::get('/', 'TovarController@tovar'); поменять местами. Какую ошибку показывает теперь?
Не в сети
Теперь ошибки нет, спасибо! Вы правы, я не до конца понимаю принципы, можете подсказать?
Не в сети
В официальных доках достаточно подробно описан цикл жизни запроса
Не в сети
А есть альтернатива докам? Быть может какой то видеоформат, буду очень благодарен за ссылку...
Не в сети
Без чтения документации вряд ли получится некоторые тонкости уловить.
Видео, наверное тут https://laracasts.com
В остальном гуглится достаточно просто) А еще, на форуме есть парень у которого есть не плохой канал для начинающих) Попробуй https://www.youtube.com/channel/UC3n8EP … mIA/videos
Не в сети
Страницы 1