2016-09-24 3 views
0

Я новый бит в Laravel, я пытаюсь удалить проект из одной таблицы и удалить это изображение и планы других 2-х таблиц, как сделать это в LaravelEloquent: удаление строк из множества таблицы с одинаковым идентификатором

здесь является удаление контроллера проекта

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

, как я могу сделать это, я нашел кто-то сказал, что это должно быть сделано из модели, но я не понимаю.

здесь является Projects модель

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

Вы создали какие-либо отношения между вашими планами проектов и изображениями таблицы ??. Я имею в виду, вы использовали отношения Laravel? –

+0

@ Башар Нозибулла, вы имеете в виду 'hasMany', да, я думаю, что это ясно в вопросе !! –

+1

Если вы понимаете отношения laravel, то при создании таблиц используйте ondelete cascade. Я имею в виду, что в вашей таблице планов и изображений будет внешний ключ, который я думаю, поскольку вы определили отношения. Прямо сейчас я говорю, что когда вы создали внешний ключ, используйте ondelete cascade '$ table-> integer ('project_id') -> unsigned(); $ table-> foreign ('project_id') -> ссылки ('id') -> on ('projects') -> onDelete ('cascade'); 'используйте этот способ в вашей таблице планов и изображений –

ответ

0

лучший способ, когда речь идет о согласованности данных является реализация внешних ключей на уровне базы данных. Это делает это автоматически для вас, и вам больше не нужно об этом думать.

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

+0

попробует это и вернется к вам –

+0

это был полезен для начинающих 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 ' –

Смежные вопросы