【发布时间】:2019-01-03 15:20:58
【问题描述】:
我有一张桌子account_heads,我在同一张桌子上返回父母的孩子。到目前为止一切都很好,但是当我以表格形式展示这些内容时遇到了问题。我在同一张桌子上有4或5个父母的孩子。
我的礼物loop 如下所示-
@foreach ($accountHeads as $accountHead)
@foreach ($accountHead->children as $children)
<option value="{{ $children->id }}">{{ $children->name }} @if($children->code) ({{ $children->code }})@endif</option>
@foreach($children->children as $c1)
<option value="{{ $c1->id }}"> -- {{ $c1->name }} @if($c1->code) ({{ $c1->code }})@endif</option>
@foreach($c1->children as $c2)
<option value="{{ $c2->id }}"> ---- {{ $c2->name }} @if($c2->code) ({{ $c2->code }})@endif</option>
@foreach($c2->children as $c3)
<option value="{{ $c3->id }}"> ------ {{ $c3->name }} @if($c3->code) ({{ $c3->code }})@endif</option>
@foreach($c3->children as $c4)
<option value="{{ $c4->id }}"> -------- {{ $c4->name }} @if($c4->code) ({{ $c4->code }})@endif</option>
@foreach($c4->children as $c5)
<option value="{{ $c5->id }}"> ---------- {{ $c5->name }} @if($c5->code) ({{ $c5->code }})@endif</option>
@foreach($c5->children as $c6)
<option value="{{ $c6->id }}"> ------------ {{ $c6->name }} @if($c6->code) ({{ $c6->code }})@endif</option>
@endforeach
@endforeach
@endforeach
@endforeach
@endforeach
@endforeach
@endforeach
@endforeach
我的帐户AccountHeadsController 的create 方法如下-
public function create()
{
$accountHeads = AccountHead::with('children')->where('parent_id', 0)->get();
return view('account.account-head.create', compact('accountHeads'));
}
而AccountHead 模型如下-
class AccountHead extends Model
{
use SoftDeletes;
use Updater;
protected $table = 'account_heads';
protected $fillable = [
'name', 'code', 'memo', 'opening_balance', 'parent_id', 'status', 'created_by', 'updated_by', 'deleted_by'
];
public function parent()
{
return $this->belongsTo('App\Model\AccountHead','parent_id')->where('parent_id',0)->with('parent');
}
public function children()
{
return $this->hasMany('App\Model\AccountHead','parent_id')->with('children');
}
}
【问题讨论】:
-
如果你想最小化循环,你将需要一些递归。看看stackoverflow.com/questions/26652611/… 是否有帮助,否则你需要做一些额外的研究。
标签: laravel foreach eloquent relationship nested-loops