VLS*_*VLS 6 php laravel laravel-5
最近我开始使用 Laravel 5.2,我正在尝试制作删除按钮,该按钮将从数据库中删除行。非常基本和琐碎,但似乎我做不到。
我正在关注删除文档:https : //laravel.com/docs/5.2/queries#deletes
我已经做到了。我的路线:
Route::post('flags/destroy/{delete}', 'FlagsController@destroy')->name('admin.flags.destroy');
Run Code Online (Sandbox Code Playgroud)
视图中的按钮
{!! Html::linkRoute('admin.flags.destroy', 'Delete', $flag->report_id) !!}
Run Code Online (Sandbox Code Playgroud)
和控制器
public function destroy(Request $request){
$report = $request['report_id'];
Report::find($report);
$report->delete();
$request->session()->flash('alert-success', ' Report is deleted successfully.');
return redirect()->route('admin.flags');
}
Run Code Online (Sandbox Code Playgroud)
我尝试过其他线程的解决方案,但总是出错:
在compiled.php第8936行中的MethodNotAllowedHttpException:
新错误:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'reports.id' in 'where clause' (SQL: select * from `reports` where `reports`.`id` is null limit 1
Run Code Online (Sandbox Code Playgroud)
为什么是搜索id而不是report_id?
更新:
按钮
{!! Html::linkRoute('admin.flags.destroy', 'Delete', $flag->report_id) !!}
Run Code Online (Sandbox Code Playgroud)
控制器
public function destroy(Request $request){
$report = $request['report_id'];
dd( $request->input('delete'));
Report::where('report_id', $report)->first();
$report->delete();
$request->session()->flash('alert-success', ' Report is deleted successfully.');
return redirect()->route('admin.flags');
}
Run Code Online (Sandbox Code Playgroud)
路线
Route::get('flags/destroy/{delete}', 'FlagsController@destroy')->name('admin.flags.destroy');
Run Code Online (Sandbox Code Playgroud)
更新 2:这似乎有效,但它足够安全吗?看法:
{!! Form::open(array('route' => array('admin.flags.destroy', $flag->report_id), 'method' => 'get')) !!}
<button type="submit">Delete</button>
{!! Form::close() !!}</td>
Run Code Online (Sandbox Code Playgroud)
控制器
public function destroy($report_id){
Report::destroy($report_id);
//$request->session()->flash('alert-success', ' Report is deleted successfully.');
return redirect()->route('admin.flags');
}
Run Code Online (Sandbox Code Playgroud)
我认为您的代码需要更新如下:
public function destroy($delete){
$report = $delete;
$rsltDelRec = Report::find($report);
$rsltDelRec->delete();
$request->session()->flash('alert-success', ' Report is deleted successfully.');
return redirect()->route('admin.flags');
}
Run Code Online (Sandbox Code Playgroud)
希望这对你有用!
| 归档时间: |
|
| 查看次数: |
15640 次 |
| 最近记录: |