Laravel 5.5关系拔出在检索子关系时不起作用



我有一个Laravel 5.5应用程序,该应用程序具有编辑或更新功能,该功能具有两个下拉菜单。一个下拉列表是父关系,第二个下拉列表则是它的子关系。所以基本上第一个下拉列表有很多第二个下拉列表,就是这样。

现在关于我的控制器中的代码

$services = Service::all()->sortBy('code', SORT_NATURAL | SORT_FLAG_CASE)->pluck('description', 'id');
$categories = Service::with('categories')->get()->sortBy('categories.name', SORT_NATURAL | SORT_FLAG_CASE)->pluck('categories.name', 'categories.id');

我使用了一个pluck方法,该方法将只检索类别的名称和id,这是服务(如我所说(的子关系。服务有许多类别,我只想在下拉列表中显示基于下拉列表中所选分类。该下拉列表是在Laravel pull的帮助下根据现有记录自动选择的。

然而,第二CCD_ 2或CCD_ 3为空或者第二查询不工作。

以下是我如何在服务模型中定义我的关系。

public function categories()
{
return $this->hasMany('AppModelsCategories', 'service_id', 'id');
}

现在我的刀片文件中的代码

<div class="form-group col-sm-6">
{!! Form::label('service_id', 'Service:') !!}
{!! Form::select('service_id', $services, null, ['class' => 'form-control input-md','required', 'id' => 'service_id'])!!}
</div>
<div class="form-group col-sm-6">
{!! Form::label('categories_id', 'Category:') !!}
{!! Form::select('categories_id', $categories, null, ['class' => 'form-control input-md','required', 'id' => 'category_id'])!!}
</div>

如果有人能帮忙,我将不胜感激。提前谢谢。

我将查看您传递给pluck的值。由于您正在使用第二个查询生成一个新集合,我相信您应该能够调用pluck('name', 'id');categoriescolumn_name用于避免查询中的歧义,但集合所做的只是检索模型,因此,如果使用不带表前缀的属性名称,则应该得到所需的内容。

我之前认为您是通过查询处理排序的;由于您也在集合级别处理此问题,因此我也会从该字段中删除categories前缀。您也可以调整查询以使用->orderBy()方法,并将字段名称作为要获取的数组传递(如:->get(['name', 'id'])(。这完全取决于您的需求——如果我的第一个建议对您不起作用,您可以将排序和筛选转移到查询中。希望对一些人有所帮助。

相关内容

  • 没有找到相关文章

最新更新