首页 > 解决方案 > 避免业务逻辑的最佳实践

问题描述

我正在使用 php 7.3 和 laravel 5.7 我使用 fields.blade.php 来渲染相同的表单来创建和编辑操作。

在表单中,我有一个选择,我想避免在上面的视图中驱逐这个条件。这个角色是因为我设置了 $business only 编辑操作

删除此角色的最佳做法是什么?搬家找帮手?移动模型方法?

字段.blade.php:

@php
if(isset($business)) {
  $collection = $business->categories()->pluck("name", "id");
}
else {
  $collection = [];
}
@endphp

{!! Form::select('category_id', $collection,  ['class' => 'select2'])  !!}

标签: phplaravel-blade

解决方案


您可以检查控制器内部的条件并传递$collection给视图:

你的控制器.php

$collection = $business->categories()->pluck("name", "id");

return view('your.view', ['collection' => $collection]);

你的视图.php

{!! Form::select('category_id', $collection,  ['class' => 'select2'])  !!}

推荐阅读