Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 08.12.2018 13:38:32

Вывод товаров из Бд laravel ошибка

При выводе товара из бд происходит ошибка
(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>

Не в сети

#2 08.12.2018 13:51:46

Re: Вывод товаров из Бд laravel ошибка

На первый взгляд - у тебя шаблон вывода в контроллере указан index, туда и передается переменная, а ищется она, судя по ошибке, в sidebar

Не в сети

#3 08.12.2018 14:18:06

Re: Вывод товаров из Бд laravel ошибка

Я код контроллеров приложил

Не в сети

#4 12.12.2018 18:21:32

Re: Вывод товаров из Бд laravel ошибка

Очевидно что вы не правильно понимаете принцип маршрутизации запросов.
Попробуйте например Route::get('/', 'MenuController@menu'); Route::get('/', 'TovarController@tovar'); поменять местами. Какую ошибку показывает теперь?

Не в сети

#5 24.12.2018 13:59:35

Re: Вывод товаров из Бд laravel ошибка

Теперь ошибки нет, спасибо! Вы правы, я не до конца понимаю принципы, можете подсказать?

Не в сети

#6 24.12.2018 15:54:26

Re: Вывод товаров из Бд laravel ошибка

В официальных доках достаточно подробно описан цикл жизни запроса

Не в сети

#7 25.12.2018 15:43:37

Re: Вывод товаров из Бд laravel ошибка

А есть альтернатива докам? Быть может какой то видеоформат, буду очень благодарен за ссылку...

Не в сети

#8 25.12.2018 15:51:54

Re: Вывод товаров из Бд laravel ошибка

Без чтения документации вряд ли получится некоторые тонкости уловить.
Видео, наверное тут https://laracasts.com
В остальном гуглится достаточно просто) А еще, на форуме есть парень у которого есть не плохой канал для начинающих) Попробуй https://www.youtube.com/channel/UC3n8EP … mIA/videos

Не в сети

Подвал раздела