Я использую Laravel 5.6 и у меня проблема с передачей данных в мой блейд-файл.
BlogController:
namespace App\Http\Controllers;
use App\Mail\Practice;
use App\Mail\Mailable;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Post;
use Session;
class BlogController extends Controller
{
public function getSingle($slug){
// Fetch from the DB based on Slug --first stops after one, get pulls everything
$post = Post::where('slug', '=', $slug)->first();
print_r($slug);
// return the view and pass in the post object
return view('blog.single')->withPost($post);
}
}
single.blade.php:
@extends('main')
@section('title', "| $post->title")
@section('content')
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h1>{{ $post->title}}</h1>
<p>{{ $post->body }}</p>
</div>
@ stop
Я проверил имя и орфографию в БД (MySQL.) Если I dd($slug)
или print_r($slug)
, результаты верны.
Однако, если я делаю то же самое, но использую $title
или $body
, возвращается ошибка
Попытка получить свойство необъекта (View: / Users / jesseburger/myproject/resources/views/blog/single.blade.php)
Мне удалось проверить, что он извлекает пустой массив, используя print_r($post)
, но не могу понять, почему.
print_r($post)
выход:
Подсветка \ База данных \ Eloquent \ Collection Object ([items: protected] => Array ())
Текущий маршрут:
Route::get('blog/{slug}', [
'as' => 'blog.single',
'uses' => 'BlogController@getSingle'
])->where('slug', '[\w\d\-\_]+');