前提・実現したいこと
Laravelを学び始めた初心者です。
idを取得してマイページを表示したいのですが、値の取得がうまくいかずに手詰まりになっております。
解決策をご教授していただきたいです。よろしくお願いします。
<開発環境>
Windows10
Laravel 8.43.0
PHP 8.0.6
<実現したい事>
/companies/indexの「詳細」ボタンを押すと、/show/{id}に移動し詳細ページが表示される。
<現状>
一覧画面の「詳細」ボタンを押下すると以下のエラーが生じる。
ErrorException
Attempt to read property "company_name" on null
resources/views//companies/show.blade.phpでエラーが発生しています。
idが取得できずエラーが発生しているものと思われますが解決できません。
以下が該当コードです。
該当のソースコード
web.php
Route::get('/', function () { return view('welcome'); }); Route::group(['prefix'=>'companies'], function () { Route::get('index', [CompaniesController::class, 'index'])->name('index'); // 一覧表示ページ Route::get('create', [CompaniesController::class, 'create']); // 新規登録ページ Route::post('store', [CompaniesController::class, 'store'])->name('register'); // 新規保存 Route::get('show/{id}', [CompaniesController::class, 'show'])->name('show'); // 詳細表示ページ
CompaniesController.php
class CompaniesController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response * @return App\Models\Companies */ public function index() { //テーブルからid,company_name,telephone,emailを$companiesに格納 $companies = Companies::all(); return view('/companies/index', ['companies' => $companies]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response * @return App\Models\Companies */ public function create() { $companies = new Companies; return view('companies/create', ['companies' => $companies]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response * @return App\Models\Companies */ public function store(Request $request) { $companies = new Companies; $companies->fill( $request->all() ); $companies->save(); return redirect('/companies/index'); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response * @return App\Models\Companies */ public function show($id) { $companies = Companies::find($id); return view('/companies/show',['companies' => $companies]); }
index.blade.php
<body> <h1>一覧表示</h1> <table class="table table-bordered"> <thead class="thead-white"> <tr> <th>ID</th> <th>企業名</th> <th>電話番号</th> <th>メールアドレス</th> </tr> @foreach($companies as $company) <tr> <td>{{$company->id}}</td> <td>{{$company->company_name}}</td> <td>{{$company->telephone}}</td> <td>{{$company->email}}</td> <td><a class="btn btn-primary" href="{{ route('show', ['id'=>'$company->id']) }}">詳細</a></td> </tr> </thead> @endforeach </table> <a class="btn btn-primary" href="{{ url('companies/create') }}">新規登録</a> </body>
show.blade.php
<body> <h1>詳細画面</h1> <table class="table table-striped"> <tr> <tr> <th>企業名</th> <td>{{$companies->company_name}}</td> </tr> <tr> <th>電話番号</th> <td>{{$companies->telephone}}</td> </tr> <tr> <th>メールアドレス</th> <td>{{$companies->email}}</td> </tr> </table> <a class="btn btn-primary" href="{{ route('index')}}">一覧画面</a> </body>
足りない情報あればご教授ください。
宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/07/25 09:21
2021/07/25 09:23
2021/07/25 11:47
2021/07/26 00:08
2021/07/26 00:27
2021/07/27 06:41