Laravel 编辑路线未定义
Laravel edit route not defined
此处路线代码:
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 或不使用它如何访问编辑?
谢谢。
如果您想在视图中使用路由,您应该为路由命名,如下所示:
Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit')->name('ruangjn-edit');
那就用
{{route('ruangjn-edit', ['ruangjn' => $data->id])}}
有关详细信息,请参阅 Laravel 路由文档
https://laravel.com/docs/5.7/routing
这是因为您没有为路由指定任何名称。
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');
可以解决问题,您不必指定单独的路线,因为它将由它自己的资源处理。
只需删除'Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit');'
Laravel 资源控制器已经有“编辑”操作。
https://laravel.com/docs/5.7/controllers#resource-controllers
使用这个
<a href="{{ route('ruangjns/'.$data->id.'/edit') }}" class="btn btn-warning">Edit</a>
public function edit($ruangjn)
{
$ruangjn = Ruanganjns::findOrFail($ruangjn);
return view('ruanganjns.edit', compact('ruangjn'));
}
根据这个Laravel's documentation,你需要写带括号的参数。
您能否在您认为的 link 上尝试使用此语法?
{{ route('ruangjns.edit', ['ruangjns' => $data->id]) }}
在使用下面描述的解决方案之前,请尝试使用默认路由 - 删除您的编辑路由行。
如果您使用 artisan 控制台命令传递标志 -r
使控制器变得足智多谋,那么您已经定义了编辑方法。您在这里所做的是覆盖默认编辑方法 (check table),编写没有定义路由名称的新编辑方法。
解决方案是使用默认方法或使用设置自定义编辑方法,但重要的是,在资源路由之前。
Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit')->name('ruangjns.custom-edit');
Route::resource('ruangjns', 'RuanganjnsController');
你可以用 {{ $route('ruangjns.custom-edit', $ruangjnsId) }}
此处路线代码:
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 或不使用它如何访问编辑?
谢谢。
如果您想在视图中使用路由,您应该为路由命名,如下所示:
Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit')->name('ruangjn-edit');
那就用
{{route('ruangjn-edit', ['ruangjn' => $data->id])}}
有关详细信息,请参阅 Laravel 路由文档 https://laravel.com/docs/5.7/routing
这是因为您没有为路由指定任何名称。
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');
可以解决问题,您不必指定单独的路线,因为它将由它自己的资源处理。
只需删除'Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit');'
Laravel 资源控制器已经有“编辑”操作。
https://laravel.com/docs/5.7/controllers#resource-controllers
使用这个
<a href="{{ route('ruangjns/'.$data->id.'/edit') }}" class="btn btn-warning">Edit</a>
public function edit($ruangjn)
{
$ruangjn = Ruanganjns::findOrFail($ruangjn);
return view('ruanganjns.edit', compact('ruangjn'));
}
根据这个Laravel's documentation,你需要写带括号的参数。 您能否在您认为的 link 上尝试使用此语法?
{{ route('ruangjns.edit', ['ruangjns' => $data->id]) }}
在使用下面描述的解决方案之前,请尝试使用默认路由 - 删除您的编辑路由行。
如果您使用 artisan 控制台命令传递标志 -r
使控制器变得足智多谋,那么您已经定义了编辑方法。您在这里所做的是覆盖默认编辑方法 (check table),编写没有定义路由名称的新编辑方法。
解决方案是使用默认方法或使用设置自定义编辑方法,但重要的是,在资源路由之前。
Route::get('ruangjns/{ruangjn}/edit', 'RuanganjnsController@edit')->name('ruangjns.custom-edit');
Route::resource('ruangjns', 'RuanganjnsController');
你可以用 {{ $route('ruangjns.custom-edit', $ruangjnsId) }}