/**
  * Store a newly created resource in storage.
  *
  * @param  \App\Requests\riskRequest  $request
  * @return \Illuminate\Http\Response
  */
 public function store(DefenceRequest $request, $attack)
 {
     $this->authorize('append', $attack);
     if ($attack->tree->id != $request->input('tree')) {
         abort(400);
     }
     $new_defence = new Defence($request->all());
     $new_defence->tree()->associate($request->input('tree'));
     $new_defence->tempAttacks = $request->input('attacks');
     $new_defence->save();
     $new_defence->attacks()->sync($request->input('attacks'));
     $new_defence->syncTags($request->input('tags'));
     return redirect()->route('tree.show', [$attack->tree])->with('succes', 'Defence successfully created');
 }
 /**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
     \App\Attack::observe(new \App\Observers\AttackObserver());
     \App\Defence::observe(new \App\Observers\DefenceObserver());
     \App\Risk::observe(new \App\Observers\RiskObserver());
     \App\Tree::observe(new \App\Observers\TreeObserver());
     \App\User::observe(new \App\Observers\UserObserver());
 }
 /**
  * Create a new event instance.
  *
  * @return void
  */
 public function __construct(\App\Defence $defence)
 {
     $this->defence = $defence->load('attacks');
     $this->tree = ['id' => $defence->tree->id, 'public' => $defence->tree->public];
     $this->parent = ['type' => 'attack', 'id' => $defence->tempAttacks ? $defence->tempAttacks : $defence->attack->id];
 }