前提・実現したいこと
編集ページに変数が渡せていないと言うエラーがですが中々解決できません。
発生している問題・エラーメッセージ
Trying to get property 'name' of non-object (View: /Applications/MAMP/htdocs/PostSite/resources/views/bulletin-boards/edit.blade.php)
該当のソースコード
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Post; use App\Http\Requests\PostRequest; use Illuminate\Support\Facades\DB; //省略 PostsController.php public function edit() { $posts = DB::table('posts') ->select('name','subject','message') ->first(); return view('bulletin-boards.edit', compact('posts')); }
edit.blade.php (編集ページ) <div class="container mt-4"> <div class="border p-4"> <h1 class="h4 mb-4 font-weight-bold"> 投稿更新ページ </h1> @foreach ($posts as $post) //変数が渡せていないです。 <tr> <td>{{ $post->name }}</td> <td>{{ $post->subject }}</td> <td>{!! nl2br(e($post->message)) !!}</td> </tr> @endforeach
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Post extends Model { protected $fillable = [ 'name', 'subject', 'message', 'category_id' ]; public function comments() { // 投稿は複数のコメントを持つ return $this->hasMany('App\Models\Comment'); } public function category() { // 投稿は1つのカテゴリーに属する return $this->belongsTo('App\Models\Category'); } }
試したこと
コントローラーにてdd($posts)を調べたら値は入っていました。
compact関数の使い方がおかしいでしょうか?
また、optionalと言うヘルパ関数がありますがこれだとnullの場合、スルーされると言うものですが値を習得して編集ページに
投稿内容を表示させたいです。
補足情報(FW/ツールのバージョンなど)
laravel 6.20
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/02/22 09:49 編集
2021/02/22 09:53
2021/02/22 12:33 編集
2021/02/22 13:48
2021/02/22 13:51
2021/02/22 14:20