mám databázová tabuľka "dokumenty" s touto štruktúrou:
// table documents:
|id|parent_id|name |
|1 |0 |foldername1|
|2 |0 |foldername2|
|2 |1 |subfolder |
V mojom Laravelovom modeli Document.php Mám túto metódu:
public function parent()
{
return $this->belongsTo($this, "parent_id", "id");
}
Ale ako môžem získať rad s mojimi strapcami v mojom kontrolórovi?
Snažil som sa veľa vecí, ale to nefunguje ... :(
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;
}
odpovede:
1 pre odpoveď č. 1Ako asi len mať atribút breadcrumbs na modeli?
class File {
public function getBreadcrumbsAttribute()
{
if($this->parent){
return array_merge($this->parent->breadcrumbs, [$this->id]);
}
return [$this->id];
}
}
Potom môžete zavolať $file->breadcrumbs
, To by sa dalo ľahko prispôsobiť, ak potrebujete preniesť mená súborov alebo odkazy na poľa.