/**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     Cube::create(['name' => 'First Cube']);
     Block::create(['x' => '1', 'y' => '1', 'z' => '1', 'value' => '23', 'cube_id' => '1']);
     Block::create(['x' => '2', 'y' => '2', 'z' => '2', 'value' => '4', 'cube_id' => '1']);
     Block::create(['x' => '2', 'y' => '2', 'z' => '3', 'value' => '7', 'cube_id' => '1']);
 }
 /**
  * Query the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function query(Request $request, $id)
 {
     $cubes = Cube::all();
     $cube = $cubes->find($id);
     $blocks = $cube->blocks()->get();
     $sum = 0;
     $message = "The query resulted in the sum of: ";
     $validator = Validator::make($request->all(), ['x1' => 'required|integer|max:32767', 'y1' => 'required|integer|max:32767', 'z1' => 'required|integer|max:32767', 'x2' => 'required|integer|max:32767', 'y2' => 'required|integer|max:32767', 'z2' => 'required|integer|max:32767']);
     if ($validator->fails()) {
         $this->throwValidationException($request, $validator);
     }
     $x1 = $request->input('x1');
     $y1 = $request->input('y1');
     $z1 = $request->input('z1');
     $x2 = $request->input('x2');
     $y2 = $request->input('y2');
     $z2 = $request->input('z2');
     foreach ($blocks as $block) {
         if ($x1 <= $block->x && $block->x <= $x2) {
             if ($y1 <= $block->y && $block->y <= $y2) {
                 if ($z1 <= $block->z && $block->z <= $z2) {
                     $sum += $block->value;
                 }
             }
         }
     }
     $blocks = $cube->blocks()->paginate(10);
     return view('cubes.show', array('cubes' => $cubes, 'cube_act' => $cube, 'blocks' => $blocks, 'message' => $message . $sum));
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function createCube($info)
 {
     $name = 'Cube ' . $info;
     $this->cube = Cube::create(array('name' => $name));
 }