i have a simple application for recursive hasMany relationship with unlimited subcategories the code is running without a problem but it’s not retrieving the parent category name or title.
when i tried to loop through the data coming from the DB it have the parent id but not the parent category name i need to get the parent category name here is the code for both controller and model
CategoryController.php
<?php
namespace AppHttpControllers;
use AppCategory;
use IlluminateHttpRequest;
class CategoryController extends Controller
{
/**
* Display a listing of the resource.
*
* @return IlluminateHttpResponse
*/
public function index()
{
$parentCategories = Category::where('parent_id',1)->get();
return view('welcome', compact('parentCategories'));
}
}
?>
Category.php
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Category extends Model
{
protected $guarded = [];
public function subcategory(){
return $this->hasMany('AppCategory', 'parent_id');
}
}
?>
Advertisement
Answer
You should create another relation in same Category model.
public function parent() {
return $this->belongsTo('AppCategory', 'parent_id');
}
And retrieving parent model will be like that:
$subcategory->parent->title;