/ / मैं एक ब्रेडक्रंब सरणी कैसे एक क्वेरी (Laravel में) बना सकते हैं? - PHP, mysql, लार्वेल, ब्रेडक्रंब

मैं एक ब्रेडक्रंब सरणी कैसे एक क्वेरी (Laravel में) बना सकते हैं? - PHP, mysql, लार्वेल, ब्रेडक्रंब

मेरे पास एक डेटाबेस तालिका "दस्तावेज" इस संरचना के साथ:

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

मेरे लार्वा मॉडल में 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;
}

उत्तर:

उत्तर № 1 के लिए 1

मॉडल पर ब्रेडक्रंब विशेषता रखने के बारे में कैसे?

class File {

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

तो आप बस कॉल कर सकते हैं $file->breadcrumbs। यदि आपको फ़ाइल नाम या सरणी के लिंक को पास करने की आवश्यकता है तो इसे आसानी से अनुकूलित किया जा सकता है।