我有一个数据库表"文档" 具有以下结构:
// 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');
}
但是如何在控制器中使用我的面包屑获取数组?
我尝试了很多东西,但它不起作用...... :(
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;
}
答案 0 :(得分:2)
在模型上只有一个breadcrumbs属性怎么样?
postcodes.iloc[:,1] = postcodes.iloc[:,1].apply(lambda x: x.split('—'))
def unwrap_codes(row):
row = row['Postcode begins with']
if len(row) > 1:
for x, y in row:
while x != y:
row.append(x=+1)
postcodes['Unwraped'] = postcodes.apply(unwrap_codes, axis=1)
然后你可以致电class File {
public function getBreadcrumbsAttribute()
{
if($this->parent){
return array_merge($this->parent->breadcrumbs, [$this->id]);
}
return [$this->id];
}
}
。如果您需要将文件名或链接传递给数组,这可以很容易地进行调整。