2016-09-24 8 views
0

새로운 비트를 여러 테이블에서 행을 삭제 나는 누군가가이 모델에서 수행해야하지만, 나는 그것을 이해하지 않았다 발견이 작업을 수행 할 수있는 방법을 프로젝트웅변 : 나는 하나 개의 테이블에서 프로젝트를 삭제하고 이미지와</p> <p>여기 laravel에서이 작업을 수행하는 방법에 다른 두 테이블에서 계획의 삭제하려고, Laravel에 나는 동일한 ID

public function destroy($id) 
    { 
     $project = Projects::findOrFail($id); 
     $project->delete(); 
     return Redirect::to('admin/view-project')->with('message', 'Project deleted successfully'); 
    } 

의 삭제 컨트롤러입니다.

여기에 프로젝트 모델

class Projects extends Eloquent implements UserInterface, RemindableInterface 
{ 

    use UserTrait, RemindableTrait; 

    protected $table = 'project_info_arabic'; 

    public function projectImages() 
    { 
     return $this->hasMany('ProjectsImage'); 
    } 

    public function projectPlans() 
    { 
     return $this->hasMany('ProjectsPlans'); 
    } 
} 

친절 할 수있는 사람의 도움이됩니다. 데이터베이스 계층에 대한 외래 키의 구현은 데이터 일관성에 관한 생각할 때

+0

프로젝트 계획과 이미지 테이블간에 관계를 만들었습니까 ?? 래벨 관계를 사용 했나요? –

+0

@Bashar Nozibulla 당신은'hasMany'를 의미합니까? 네, 질문에 분명하다고 생각합니다 !! –

+1

laravel 관계를 이해하면 테이블을 생성하는 동안 ondelete cascade를 사용합니다. 당신의 계획과 이미지 테이블에는 관계를 정의한 것처럼 외래 키가있을 것입니다. 지금은 외래 키를 만들 때 ondelete 캐스케이드'$ table-> integer ('project_id') -> unsigned();를 사용한다고 말하고 있습니다. onDelete ('cascade'); '계획 및 이미지 테이블에서이 방법 사용 –

답변

0

더 나은 방법을 모델 이벤트를 시도 할 수 있습니다. 그것은 자동으로 당신을 위해 당신은 당신이 그것에 대해 더 이상 생각할 필요가 없습니다.

https://laravel.com/docs/5.3/migrations#foreign-key-constraints

+0

이걸 시도하고 다시 돌아올 것이다 –

+0

this 나 같은 Laravel 초보자에게 도움이되었다 덕분에 –

+0

환영보다. 이것은 Laravel과 반드시 ​​관련이 없으며, 순수하게 데이터베이스와 관련이 있습니다. Laravel이 상자에서 키를 만드는 것을 지원한다는 사실에 흥미를 느낍니다. 즐겨. – hogan

0

당신은 laravel.Check이

class Projects extends Eloquent implements UserInterface, RemindableInterface 
{ 

    public static function boot() 
    { 
     parent::boot(); 

     Projects::deleted(function($project) 
     { 
      $project->projectImages()->delete(); 
      $project->projectPlans()->delete(); 
     }); 
    } 
} 
+0

나는 이걸 시도하지만'Class 'ProjectsImage'not found '를 찾았다. –