Php 具有多个父ID的Laravel查询
我想知道从某个项目的所有sprint中选择所有可交付成果的最有效方法是什么。在此之前,我只需查询它们,并使用blade.php进行循环和if语句来过滤我需要的可交付成果。php中执行此任务最有效的方法是什么 Sprint控制器:Php 具有多个父ID的Laravel查询,php,mysql,laravel,Php,Mysql,Laravel,我想知道从某个项目的所有sprint中选择所有可交付成果的最有效方法是什么。在此之前,我只需查询它们,并使用blade.php进行循环和if语句来过滤我需要的可交付成果。php中执行此任务最有效的方法是什么 Sprint控制器: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Requests\SprintRequest; u
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Requests\SprintRequest;
use Reponse;
use App\Sprint;
use App\Deliverable;
use App\Project;
class SprintController extends Controller
{
private function __construct(){
$this->middleware('role:admin', ['except' => ['index', 'show']]);
}
public function index($project_id)
{
$project = Project::findOrFail($project_id);
$sprints = $project->sprints()->get();
$deliverables = array();
foreach ($sprints as $sprint) {
array_push($deliverables, $sprint->deliverables()->get());
}
$amount = 0;
$completed = 0;
foreach ($deliverables as $deliverable) {
if ($deliverable->complete == '1' && $deliverable->sprint_id == $sprint->id && $deliverable->inactive == '0') {
$completed += 1;
$amount += 1;
}
else if ($deliverable->sprint_id == $sprint->id && $deliverable->inactive == '0') {
$amount += 1;
}
}
return view('sprints.index', compact('sprints', 'deliverables', 'amount', 'completed', 'project'));
}
public function create($project_id)
{
$project = Project::findOrFail($project_id);
$sprint = new Sprint;
return view('sprints.create', compact('project', 'sprint'));
}
public function store(SprintRequest $request, $project_id)
{
$project = Project::findOrFail($project_id);
$sprint = new Sprint;
$sprint->name = $request->name;
$project->sprints()->save($sprint);
return "success";
}
public function edit($project_id, $sprint_id)
{
$project = Project::findOrFail($project_id);
$sprint = $project->sprints()->findOrFail($sprint_id);
return view('sprints.edit', compact('project', 'sprint'));
}
public function update(SprintRequest $request, $project_id, $sprint_id)
{
$project = Project::findOrFail($project_id);
$sprint = $project->sprints()->findOrFail($sprint_id);
$sprint->name = $request->name;
$sprint->save();
return "success";
}
}
您的构造函数是私有的,这就是您实际出现此错误的原因。显示SprintController代码在blade中过滤什么?不应该急于加载可交付成果吗?@Eddystedove之前,我只会显示与该特定项目相关的Sprint中的可交付成果,即使每个项目的所有可交付成果都是私有的传递给view@train_fox你所说的渴望是什么意思?