私はこのような構造でデータベーステーブル "文書" を持っている:私のLaravelモデルDocument.phpでブレッドクラムアレイフォームをLaravelで取得するにはどうすればよいですか?
// table documents:
|id|parent_id|name |
|1 |0 |foldername1|
|2 |0 |foldername2|
|2 |1 |subfolder |
を、私はこの方法があります:
public function parent()
{
return $this->belongsTo($this, 'parent_id', 'id');
}
しかし、どのように、私は得ることができますが私のパンくずリストは私のコントローラにありますか?
私は多くのことを試してみたが、それは働いていない... :(
DocumentController.php:?
// NOT WORKING EXAMPLE!!
public function index()
{
$file = Document::findOrFail(2);
if ($file->parent) {
$breadcrumbs[] = $this->setBreadcrumbs($file->parent);
}
dd($breadcrumbs);
}
private function setBreadcrumbs(Document $file)
{
$arr = [];
if ($file->parent) {
$arr[] = $this->setBreadcrumbs($file->parent);
} else {
return $arr;
}
return $file->id;
}
なぜ 'setBreadCrumbs()'は再帰的に呼び出されますか?あなたは$ file-> parentを調べて、最初の場所に結果があるかどうかを確認することができます。 –
はい、$ file-> parentは正しい親の値を返します。しかし、私のコントローラで$ file-> parentを再帰的に実行するにはどうすればいいですか? – angelique000