前提・実現したいこと
下記サイトを参考に、ログインユーザーの名前をブラウザで表示できるか確認したい。
リンク内容
発生している問題・エラーメッセージ
Articleクラスが呼び出せないエラーが発生。
本来ならStockController.phpでuse宣言をしないといけないと思うのですが、Articleクラスをどこから呼び出しているか不明なので、どのように宣言してあげればいいかわからない。
Class 'App\Http\Controllers\Article' not found http://127.0.0.1:8000/list
該当のソースコード
create_stocks_table.php
public function up() { Schema::create('stocks', function (Blueprint $table) { $table->increments('id'); $table->string('shop'); $table->date('purchase_date'); $table->date('deadline'); $table->string('name'); $table->integer('price'); $table->integer('number'); $table->foreignId('user_id')->constrained(); //追加 $table->timestamps(); }); }
コマンド実行
work# php artisan migrate:refresh --seed Migrating: 2021_05_19_181412_create_stocks_table Migrated: 2021_05_19_181412_create_stocks_table (131.08ms)
Stock.php
namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Stock extends Model { use HasFactory; protected $fillable = ['shop','purchase_date','deadline','name','price','number']; public function user() { return $this->belongsTo('App\Models\User'); } } StockController.php namespace App\Http\Controllers; use App\Models\Stock; use Illuminate\Http\Request; use App\Http\Requests\ValidateRequest; class StockController extends Controller { public function __construct() { // __construct クラスを追加 $this->middleware('auth'); // ログイン者のみ下記メソッドを実行可能に } public function index(Request $request) { $stocks = Stock::query()->simplePaginate(8); $articles = Article::all(); return view('stock.list', ['stocks' => $stocks, 'articles' => $articles]); } }
list.blade.php
//ユーザーネームが取得できているか確認 @foreach ($articles as $article) <p>{{ $article->user->name }}</p> @endforeach
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/26 06:31
2021/06/26 11:20