Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Вот пытаюсь выбрать меню назавние меню и ссылки на них в heder.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class Heder extends Controller
{
public function Menu()
{
$menu = Menu::all()->where('publish', '1');
return view('travel/heder', [$menu => 'menu']);
}
}
в представление возникает ошибка что переменой $menu нету
Модель создал с именнем Menu
Не в сети
Неправильно передается переменная $menu, должно быть:
return view('travel.header', ['menu' => $menu]);
Так как переменная все равно нигде не используется больше, можно сделать все в одну строку:
return view('travel.header', ['menu' => Menu::wherePublish(1)->get()]);
После all() - у Вас уже запрос SQL выполнен и далее все происходит на коллекции (в PHP), что будет медленнее. Лучше выборку сделать сразу
Не в сети
Неправильно передается переменная $menu, должно быть:
return view('travel.header', ['menu' => $menu]);
Так как переменная все равно нигде не используется больше, можно сделать все в одну строку:
return view('travel.header', ['menu' => Menu::wherePublish(1)->get()]);
После all() - у Вас уже запрос SQL выполнен и далее все происходит на коллекции (в PHP), что будет медленнее. Лучше выборку сделать сразу
Сделал как вы сказали вот все равно ошибка
ErrorException in heder.php line 23:
Undefined variable: menu
Контролер
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Menu;
class Heder extends Controller
{
public function Menu()
{
return view('travel.header', ['menu' => Menu::wherePublish(1)->get()]);
}
}
Вид
<?php foreach($menu as $item): ?>
<li><a href="#"><?=$item['name'];?></a></li>
<?php endforeach; ?>
Не в сети
А покажите 23-ю строку из heder.php? Тут же похоже, что не шаблон жалуется
Не в сети
вот строка 23
<?php foreach($menu as $item): ?>
<li><a href="#"><?=$item['name'];?></a></li> <?php endforeach; ?>
Не в сети
НЕ как не могу понять в чем проблема, создал модель Menu.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Menu extends Model
{
//
}
Создал контроле Heder.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Menu;
class Heder extends Controller
{
public function Menu()
{
return view('travel.header', ['menu' => Menu::wherePublish(1)->get()]);
}
}
И вид heder.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<link rel="stylesheet" type="text/css" href="<?=asset('travel/css/style.css');?>" />
<link rel="stylesheet" type="text/css" href="<?=asset('travel/css/default0.css');?>" media="all" />
<script src="<?=asset('travel/js/jquery-1.js'); ?>"></script>
<script src="<?=asset('travel/js/jquery00.js'); ?>"></script>
<script src="<?=asset('travel/js/init0000.js'); ?>"></script>
<title><?=$title; ?></title>
</head>
<body>
<div class="main">
<div class="head">
<h2>Выбери своё <br />Путешествие</h2>
<a href="/"><span>C</span>hooce <span>T</span>ravel</a>
</div>
<div class="content-main">
<ul class="menu">
<?php foreach($menu as $item): ?>
<li><a href="#"><?=$item['name'];?></a></li>
<?php endforeach; ?>
<li><a href="#">Автор</a></li>
<li><a href="#">Контакты</a></li>
<form class="search-main" action="" method="">
<input class="serch-txt" type="text" name="search" />
<input class="serch-btn" type="image" src="<?=asset('travel/images/serach-btn.jpg');?>" />
</form>
</ul>
<div id="slider">
<ul id="cycle">
<li><img src="<?=asset('travel/images/galery.jpg');?>" height="266" width="927" alt="Slides" /></li>
<li><img src="<?=asset('travel/images/kolizey.jpg');?>" height="266" width="927" alt="Slides" /></li>
<li><img src="<?=asset('travel/images/piramide.jpg');?>" height="266" width="927" alt="Slides" /></li>
<li><img src="<?=asset('travel/images/galery.jpg');?>" height="266" width="927" alt="Slides" /></li>
<li><img src="<?=asset('travel/images/kolizey.jpg');?>" height="266" width="927" alt="Slides" /></li>
<li><img src="<?=asset('travel/images/piramide.jpg');?>" height="266" width="927" alt="Slides" /></li>
</ul>
<div id="cyclePager"></div>
</div>
и все равно выдает ошибку
ErrorException in heder.php line 23: Undefined variable: menu
Не в сети
У меня точно такая же проблема, вот тему создавал: https://laravel.ru/forum/viewtopic.php?id=1334 в ней есть решение.
Но вопрос остаётся актуальным, так-как решение не совсем правильное.
Не в сети
Должен же быть файл resources/views/travel/header.blade.php и в нем должет быть этот цикл foreach
Не в сети
Должен же быть файл resources/views/travel/header.blade.php и в нем должет быть этот цикл foreach
Да я не использую шаблонизатор blade
Не в сети
У меня точно такая же проблема, вот тему создавал: https://laravel.ru/forum/viewtopic.php?id=1334 в ней есть решение.
Но вопрос остаётся актуальным, так-как решение не совсем правильное.
Да хочеться понять вчем именно проблема, так как первый раз вижу что такое возникает, что переменая $menu не создаеться
Не в сети
Страницы 1