Laravel 5 | For循环w/Multiple关系
Laravel 5 | For Loop w/Multiple Relations
我已经设置了一些模型关系,我正在尝试将该数据提供给显示 table 的页面,该页面使用不同的列来显示信息。我已经为 3 个表(客户、工作、步骤)播种了 Faker 虚拟数据,仅用于测试。如何提取 "Steps" table 列数据?我的控制器为 Job & Step 模型定义了两个 (2) 变量,但我不确定如何将 Step 拉入显示器。我必须为控制器中调用的变量做一个数组吗?
这是我的控制器设置
public function index()
{
$jobs = Job::all();
$steps = Step::all();
return view('jobs.home', compact ('jobs', 'steps'));
}
这是我的blade设置
@foreach ($jobs as $job)
<tr>
<td>{{ $job->number }}</td>
<td>{{ $job->customer->name }}</td>
<td>NEED TO ADD STEPS COLUMN Here</td>
</tr>
@endforeach
有多种方法可以完成此操作,具体取决于 "Step" 模型为您提供的数据类型。
如果您只需要 "Step" 模型中的 1 项,您可以首先从 "Step" 模型中找到您需要的特定数据,而不是使用 Step::all();
提取所有内容例如,您可以使用 "Collection Methods" 下的一种更具体的方法,仅 return 一项:https://github.com/susanBuck/notes/blob/master/05_Laravel/11_Databases_Eloquent_Collections.md
如果您需要超过 1 个项目,那么您也可以使用更具体的 Collection 方法;但是,您将不得不遍历它以提取出每个单独的项目。您将必须使用 "if" 语句来确定您想要的项目,然后像处理 "jobs" 项目一样提取其列数据,例如 $job->number
.
对于第二个问题,您不必使用数组来 return 来自控制器的项目。只需在那里获得您想要的价值,如果您愿意,可以 return 。例如,要获得第一个 "step"(如果您只想要第一个),那么在控制器中对 return 变量而不是数组执行此操作:
public function index()
{
$firstStep = Step::first();
return view('jobs.home')->with('firstStep', $firstStep);
}
然后在您的 Blade 文件中,您可以像访问 $job 变量一样访问数据列行:
{{ $firstStep->someColumn}}
我已经设置了一些模型关系,我正在尝试将该数据提供给显示 table 的页面,该页面使用不同的列来显示信息。我已经为 3 个表(客户、工作、步骤)播种了 Faker 虚拟数据,仅用于测试。如何提取 "Steps" table 列数据?我的控制器为 Job & Step 模型定义了两个 (2) 变量,但我不确定如何将 Step 拉入显示器。我必须为控制器中调用的变量做一个数组吗?
这是我的控制器设置
public function index()
{
$jobs = Job::all();
$steps = Step::all();
return view('jobs.home', compact ('jobs', 'steps'));
}
这是我的blade设置
@foreach ($jobs as $job)
<tr>
<td>{{ $job->number }}</td>
<td>{{ $job->customer->name }}</td>
<td>NEED TO ADD STEPS COLUMN Here</td>
</tr>
@endforeach
有多种方法可以完成此操作,具体取决于 "Step" 模型为您提供的数据类型。
如果您只需要 "Step" 模型中的 1 项,您可以首先从 "Step" 模型中找到您需要的特定数据,而不是使用 Step::all();
提取所有内容例如,您可以使用 "Collection Methods" 下的一种更具体的方法,仅 return 一项:https://github.com/susanBuck/notes/blob/master/05_Laravel/11_Databases_Eloquent_Collections.md
如果您需要超过 1 个项目,那么您也可以使用更具体的 Collection 方法;但是,您将不得不遍历它以提取出每个单独的项目。您将必须使用 "if" 语句来确定您想要的项目,然后像处理 "jobs" 项目一样提取其列数据,例如 $job->number
.
对于第二个问题,您不必使用数组来 return 来自控制器的项目。只需在那里获得您想要的价值,如果您愿意,可以 return 。例如,要获得第一个 "step"(如果您只想要第一个),那么在控制器中对 return 变量而不是数组执行此操作:
public function index()
{
$firstStep = Step::first();
return view('jobs.home')->with('firstStep', $firstStep);
}
然后在您的 Blade 文件中,您可以像访问 $job 变量一样访问数据列行:
{{ $firstStep->someColumn}}