0

尝试使用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('[email protected]', $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'=>'[email protected]')); 

这是实际删除路线:

Route::delete('deletecompany/{id}', array('as'=>'deleteCompany', 'uses'=>'[email protected]')); 

这是检查用户是否是预期的用户的功能。谢谢我欣赏

private function companyBelongsToUser($id){ 
     $company = Company::find($id); 
     if($company->user_id == Auth::user()->id){ 
      return true; 
     } 
     return false; 
    } 
+0

你是什么意思的“扔我的页面”?你得到什么错误? –

+0

没有错误信息,只是返回页面。 – kehinde

回答

0

最后,我解决了它。主要的问题是我试图在运行时检索公司的ID,这是不可用的。

令我惊讶的是,Laravel已经关心我正在尝试手动完成的事情,我所做的只是传入一个通用的ID,Laravel找出了我想要查询的公司,并完成了这项工作。

public function destroy($id) 
    { 
     $company = Company::findOrFail($id); 
     if(!$company->user_id === Auth::user()->id) 
     { 
      return redirect()->route('companyindex')->with('message', 'Sorry, you cannot delete this company'); 
     }else{ 
      $company->delete(); 
      return redirect()->route('companyindex')->with('message', 'Company successfully deleted.'); 
     } 
    }