Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
хочу сделать ссылки для следующего и предыдущего материала в блоге и почему-то получаю ошибку.
выдает ошибку Trying to get property of non-object (View: D:\OpenServer\domains\...\resources\views\news\item.blade.php)
ошибка пропадает если убрать код с переменными $previous и $next
Похожий код нормально работал на ларавел 4
routes.php
Route::get('news/{title}', 'NewsController@showItem');
NewsController.php
<?php namespace App\Http\Controllers;
use App\News;
class NewsController extends Controller {
public function showItem($title)
{
$news = News::where('sef', '=', $title)->get();
foreach ($news as $news) // access user properties here
{
$previous = News::where('id', '<', $news->id)->orderBy('id', 'desc')->firstOrFail();
$next = News::where('id', '>', $news->id)->orderBy('id', 'asc')->firstOrFail();
}
return view('news.item')
->withNews($news)
->withPrevious($previous)
->withNext($next);
}
}
\resources\views\news\item.blade.php
@extends('layout.main')
@foreach ($news as $news)
@section('title')
{{ $news->metatitle }}
@stop
@section('keywords')
{{ $news->metakey }}
@stop
@section('description')
{{ $news->metadesc }}
@stop
@section('content')
<article>
<i class="fa fa-calendar text-primary"> {{ date('d M Y', strtotime($news->created_at)) }} </i>
<h1 class="page-header margin-0">{{ $news->title }}</h1>
<div class="page-content">
{{ HTML::image($news->image, $alt = $news->title, array('class' => 'thumbnail img-responsive pull-left')) }}
<div class="fulltext">{{ $news->fulltext }}
</div>
<div class="clearfix"></div>
</div>
</article>
@endforeach
<ul class="pager">
@if (isset($previous) and $previous->category_id === $news->category_id )
<li class="previous"><a href="{{ $previous->sef }}">← Пред новость</a></li>
@endif
<li><a href="/news">↑ Наверх</a></li>
@if (isset($next) and $next->category_id === $news->category_id )
<li class="next"><a href="{{ $next->sef }}">След новость →</a></li>
@endif
</ul>
@stop
Не в сети