前提・実現したいこと
LaravelでDBを取得し、viewに表示させたい。
また、Repositoryファイルを使
発生している問題・エラーメッセージ
Attempt to read property "name" on null (View: .../blog_index.blade.php)
該当のソースコード
【web.php】 Route::get('blog', [BlogController::class, 'blog_index'])->name('blog.index'); 【Blog.php】 namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; class Blog extends Models { use HasFactory; protected $table = 'blog'; } 【BlogController】 namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Repositories\BlogRepository; class BlogController extends Controller { protected $blog_repository; public function __construct(BlogRepository $blog_repository) { $this->blog_repository = $blog_repository; } public function blog_index() { $blog = $this->blog_repository->getBlogIndex(); return view('blog.blog_index', ['blog' => $blog]); } 【BlogRepository】 namespace App\Repositories; use App\Models\Blog; use Illuminate\Support\Facades\DB; class BlogRepository { public function getBlogIndex() { $blog = Blog::select('blog.name') ->get(); } } 【blog_index.blade.php】 @extends('layouts.main') @section('title','ブログ') @section('content') <article> <p>{{ $blog->name }}</p> </article> @endsection
試したこと
メソッドや関数を変えてみたり、引数を入れてみたりしましたが、
いかんせんド素人なため、解決の糸口が見つかりません。
viewの【blog_index.blade.php】の<p>{{ $blog->value }}</p>を削除すると、
普通に白紙のページが表示されるので、DB取得でなんらかの原因が発生していると思われます。
補足情報(FW/ツールのバージョンなど)
laravel8です。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/19 02:37