1

ここでルートコード:

Route::resource('ruangjns', 'RuanganjnsController');
Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit');

ここでコントローラ:

public function edit(Ruanganjns $ruangjn)
    {
        $ruangjn = Ruanganjns::findOrFail($ruangjn->id);
        return view('ruanganjns.edit', compact('ruangjn'));
    }

ここでインデックスを表示します:

<tbody>
@php
$no = 1;
@endphp
@foreach ($ruanganjns as $data)
<tr>
<td>{{ $no++ }}</td>
<td>{{ $data->kode_jenis_ruangan }}</td>
<td>{{ $data->jenis_ruangan }}</td>
<td>{{ $data->tgl_berlaku }}</td>
<td>{{ $data->status }}</td>
<td>
<a href="{{ route('ruangjns.edit', $data->id) }}" class="btn btn-warning">Edit</a>
</td>
<td>
<form action="{{ route('ruangjns.destroy', $data->id) }}" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="_method" value="DELETE">
<button type="submit" class="btn btn-danger" onClick="return confirm('Are You Absolutely Sure You Want to Delete the Data?')">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>

ここで結果フォームブラウザ

ここに画像の説明を入力

最近、編集からエラーコードを取得する前に。この私の投稿の前に、私はこのコードを入れました

Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit');

その後、インデックスに移動するとエラーが発生し、写真のように編集ボタンを読み取ることができません。しかし、ブラウザでエラーを検索すると、URLに置き換える必要があります

<a href="{{ route('ruangjns.edit', $data->id) }}" class="btn btn-warning">Edit</a>

<a href="{{ url('ruangjns.edit', $data->id) }}" class="btn btn-warning">Edit</a>

しかし、主な問題は、URLを使用する場合と使用しない場合の編​​集へのアクセス方法です。

ありがとうございました。

4

6 に答える 6

3

「Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit');」を削除するだけです。

Laravel リソース コントローラーには既に ' edit ' アクションがあります。

https://laravel.com/docs/5.7/controllers#resource-controllers

于 2018-10-01T09:36:00.580 に答える
2

ビュー内でルートを使用する場合は、次のようにルートに名前を付ける必要があります。

Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit')->name('ruangjn-edit');

次に、使用するだけです

{{route('ruangjn-edit', ['ruangjn' => $data->id])}}

詳細については、Laravel ルーティングのドキュメント https://laravel.com/docs/5.7/routingをご覧ください。

于 2018-10-01T09:33:17.140 に答える
0

以下の解決策を使用する前に、デフォルト ルートを使用してみてください - 編集ルート行を削除してください。artisan コンソール コマンド パス フラグ-rを使用してコントローラを作成し、機知に富んだものにした場合は、すでに編集メソッドが定義されています。ここで行うことは、既定の編集メソッド ( check table ) をオーバーライドして、ルート名が定義されていない新しい編集メソッドを作成することです。解決策は、デフォルトの方法を使用するか、カスタム編集方法の設定を使用することですが、リソース ルートの前に重要です。

Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit')->name('ruangjns.custom-edit');
Route::resource('ruangjns', 'RuanganjnsController');

{{ $route('ruangjns.custom-edit', $ruangjnsId) }} で呼び出します

于 2018-10-01T09:39:31.593 に答える
0

これは、ルートの名前を指定していないためです。

Route::resource('ruangjns', 'RuanganjnsController');
Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit')->name('ruangjns.edit');

または、あなたが試すことができるよりまともな方法

<a href="{{ url('ruangjns.update', $data->id) }}" class="btn btn-warning">Edit</a>

さらに Route::resource('ruangjns', 'RuanganjnsController');、別のルートを指定する必要のないトリックを実行できるルートは 1 つだけです。これは、それ自体がリソースによって処理されるためです。

于 2018-10-01T09:34:27.073 に答える
0

このLaravel のドキュメントによると、パラメータを括弧で囲む必要があります。ビューのリンクでこの構文を試していただけますか?

{{ route('ruangjns.edit', ['ruangjns' => $data->id]) }}
于 2018-10-01T09:38:18.237 に答える