yuuki0205nano
@yuuki0205nano (よしおか)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

編集ボタンから編集ページへ飛びたい

解決したいこと

編集ボタンを押すと'/edit/id'に接続されるようにしたい

例)
laravelでメモアプリのようなWebアプリをつくっています。
URLのベタ打ちだとページが表示されるのですが、編集ボタンからだとエラーが出てしまします。
解決方法を教えていただければと思います

発生している問題・エラー

Trying to access array offset on value of type null (View: C:\xampp\htdocs\suraphpsamp\source\sampletest\resources\views\edit.blade.php)```

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

HomeController.php

<?php

Auth::routes();

Route::get('/', 'HomeController@index')->name('home');
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/create', 'HomeController@create')->name('create');
Route::get('/memo', 'HomeController@memo')->name('memo');
Route::post('/store', 'HomeController@store')->name('store');
Route::get('/edit/{id}', 'HomeController@edit')->name('edit');
Route::post('/update/{id}', 'HomeController@update')->name('update');


【View】edit.blade.php

@extends('layouts.app')

@section('content')
<div class="row justify-content-center ml-0 mr-0 h-100">
    <div class="card w-100">
        <div class="card-header">メモ編集</div>
        <div class="card-body">
            <form method='POST' action="{{route('update',['id' => $memo['id']] ) }}">
                @csrf
                <input type='hidden' name='user_id' value="{{ $user['id'] }}">
                <div class="form-group">
                     <textarea name='content' class="form-control"rows="10">
                         {{ $memo['content'] }} //こいつがエラー?
                    </textarea>
                </div>
                <div class="form-group">
                </div>
                <button type='submit' class="btn btn-primary btn-lg">更新する</button>
            </form>
        </div>
    </div>
</div>
@endsection

スクリーンショット (170).png

自分で試したこと

・DBの内容を確認⇨しっかりcontentはあった。
・{{ $memo['content'] }}をなくしてみても効果なし

0

3Answer

編集ボタンのbladeコードを見せてもよろしいでしょうか?
エラーが表示されてるページのURLも貼り付けてもいいですか?

0Like

Comments

home.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">ログインに成功しました</div>

                <div class="card-body">
                    @if (session('status'))
                        <div class="alert alert-success" role="alert">
                            {{ session('status') }}
                        </div>
                    @endif

                    <p>この辺りにプロフィール画面が来ます</p>

                </div>

                
            </div>

                <table class="table table-striped">
                    <thead>
                        <tr>
                        <th scope="col">CheckBox</th>
                        <th scope="col">メモ内容</th>
                        <th scope="col">更新日付</th>
                        <th scope="col">更新ボタン</th>
                        </tr>
                    </thead>
                    @foreach($memos AS $memo)
                    <tbody>
                        <tr>
                        <th scope="row">✅</th>
                        <td>
                        {{ $memo['content'] }}
                        </td>
                        <td>
                            {{ $memo['updated_at'] }}
                        </td>
                        <td>
                          <a href = 'edit/{id}'>
                            <button type="button" class="btn btn-primary">編集する</button>
                            </a>
                        </td>
                        </tr>
                    </tbody>
                    @endforeach
                    </table>
        </div>
    </div>
</div>
@endsection


0Like

<a href = 'edit/{id}'>問題はここだと思います。
{id}の部分は、実際のidではないと。{id}の部分を{{ $memo['id'] }}に変更すれば治ります。
でも、おすすめのやり方はroute()メソッドを利用してURLを作成することです。<a href="{{ route('edit', $memo['id']) }}">

0Like

Your answer might help someone💌