softdelete を試してみましたが、コードの何が問題なのかまだわかりません。削除しようとするたびに。そうではありません、それは私にページを投げ返します。
これは、削除する前の確認ページのコントローラーです。
public function deleteView($id)
{
$company = Company::find($id);
return view('company.show')->with('company', $company);
}
これは、削除する前に確認するビューです。
@extends('layouts.member')
@section('content')
{!! Form::open(array('action'=> array('CompanyController@destroy', $company->id, '_method'=>'delete'))) !!}
{!! Form::token() !!}
<p>{!! $company->companyname !!}</p>
<p>{!! $company->companyaddress !!}</p>
</p>{!! $company->country !!}</p>
<p>{!! $company->state !!}</p>
<p>{!! $company->email !!}</p>
<p>{!! $company->phone !!}</p>
<p>{!! $company->website !!}</p>
<p>{!! $company->companytype !!}</p>
{!! Form::hidden('company_id', $company->id) !!}
<p>{!! Form::submit('DELETE') !!}</p>
{!! Form::close() !!}
@stop
これは、削除を実行するコントローラーです。
public function destroy(CompanyRequest $companyRequest)
{
$company_id = $companyRequest->company_id;
if(!$this->companyBelongsToUser($company_id))
{
return redirect()->route('companyindex', $company_id)->with('message', 'Sorry, yuo cannot delete this company');
}else
{
$company = Company::findOrFail($company_id);
$company->delete();
return redirect()->route('companyindex', $company_id)->with('message', 'Company deleted successfully');
}
}
これは、削除する前に確認ページに戻るルートです。
Route::get('delete/{id}', array('as'=>'deleteView', 'uses'=>'CompanyController@deleteView'));
これは、実際の削除のルートです。
Route::delete('deletecompany/{id}', array('as'=>'deleteCompany', 'uses'=>'CompanyController@destroy'));
これは、ユーザーが想定されたユーザーであるかどうかを確認する機能です。
private function companyBelongsToUser($id){
$company = Company::find($id);
if($company->user_id == Auth::user()->id){
return true;
}
return false;
}