rishatss
@rishatss
Simple Developer ^)

Как пофиксить Next ErrorException: Undefined variable: newsrus?

Добрый день господа.
Решил вывести блок новостей на странице.
Но почему-то ругается на переменную. Я ее вроде создаю и отправляю в вид с контроллера.
А результат плачевный:

IndexController
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Element;
use App\ListsMenu;
use App\NewsRus;
use TCG\Voyager\Models\Menu;


/*
class IndexController extends Controller
{
    public function index()
    {

        return view('index');
    }    
}
 */


class IndexController extends Controller
{
    public function index()
    {



    	$listsmenu = ListsMenu::where("id", '<=', 20)->get();
        $newsrus = NewsRus::where("id", '<=', 8)->get();



  		// Elements in menu (creater)
		//$elementsundermenu = Element::where("id", '<=', 8)->get();
		// end


    	






    	return view('index', compact('listsmenu','newsrus'));
    }	 
}


Model NewsRus.php
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class NewsRus extends Model
{
    protected $table = 'posts';
}


Мой вид index.blade.php. Пытаюсь вывести данные сюда.

<div class="container">
  <div class="page-header">
    <h1 class="text-center">{{ trans('routes.news') }}</h1>
  </div>
  <p class="lead text-center">{{ trans('routes.ievents') }}</p>
  <div class="container">
    <div class="row stylish-panel">
      @foreach($newsrus as $item)
      <div class="col-md-4">
        <div>
          <img src="{{ $item->image }}"" alt="Texto Alternativo" class="img-circle img-thumbnail">
          <h2>{{ $item->title }}</h2>
          <p>{{ $item->excerpt }}
          </p>
          <a href="{{ $item->slug }}" class="btn btn-primary" title="{{ trans('routes.moreinfo') }}">{{ trans('routes.moreinfo') }} »</a>
        </div>
      </div>
      @endforeach
    </div>
  </div>
</div>
<!-- /container -->


Гуглил везде, на пути грешат. Но пытался идти по их указаниям , не помогло.
Да и мне кажется если бы что-то с путями было бы. Тогда бы Вид не видел контроллер бы.
Но он его видит и инфу в нем тягает. Например с меню.
  • Вопрос задан
  • 354 просмотра
Решения вопроса 1
rishatss
@rishatss Автор вопроса
Simple Developer ^)
Проблема была из-за того что поставил локализацию https://github.com/mcamara/laravel-localization
<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/','IndexController@index');
Route::get('/other','OtherController@index');


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

  // app/Http/routes.php

    Route::group(['prefix' => LaravelLocalization::setLocale()], function()
    {
        /** ADD ALL LOCALIZED ROUTES INSIDE THIS GROUP **/
        Route::get('/', function()
        {
            return View::make('index');
        });

        Route::get('test',function(){
            return View::make('test');
        });
    });

    /** OTHER PAGES THAT SHOULD NOT BE LOCALIZED **/


Перенес свой маршрут в локализацию и песня заиграла

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/


Route::get('/other','OtherController@index');


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

  // app/Http/routes.php

    Route::group(['prefix' => LaravelLocalization::setLocale()], function()
    {
        /** ADD ALL LOCALIZED ROUTES INSIDE THIS GROUP **/
        Route::get('/','IndexController@index');

        Route::get('test',function(){
            return View::make('test');
        });
    });

    /** OTHER PAGES THAT SHOULD NOT BE LOCALIZED **/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
Здесь описана похожая проблема: Можно ли в одном контроллере работать с двумя моделями?
Не понимаю почему, но автор вопроса говорит, что ему предложенное решение помогло.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы