gpt4 book ai didi

php - 如何从查询中获取面包屑数组(在 Laravel 中)?

转载 作者:行者123 更新时间:2023-11-29 05:59:26 26 4
gpt4 key购买 nike

我有一个具有以下结构的数据库表“documents”:

// table documents:
|id|parent_id|name |
|1 |0 |foldername1|
|2 |0 |foldername2|
|2 |1 |subfolder |

在我的 Laravel 模型 Document.php 我有这个方法:

 public function parent()
{
return $this->belongsTo($this, 'parent_id', 'id');
}

但是如何在我的 Controller 中获取包含面包屑的数组

我已经尝试了很多东西,但它不起作用...:(

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;
}

最佳答案

在模型上添加面包屑属性如何?

class File {

public function getBreadcrumbsAttribute()
{
if($this->parent){
return array_merge($this->parent->breadcrumbs, [$this->id]);
}
return [$this->id];
}
}

然后你可以调用$file->breadcrumbs。如果您需要将文件名或链接传递给数组,这可以很容易地进行调整。

关于php - 如何从查询中获取面包屑数组(在 Laravel 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46307948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com