i am not sure i understand what you are trying to do BUT You can do one query using $result = ....whereIn('id', [1,2,3,4]) and then $results->groupBy('id').. or a custom group by
Feb 3, 2019
26
Level 6
How to display own category in own block with laravel?
We have three blocks
And three categories:
- Important Links
- Userful Links
- Get in touch
I want to display Userful Links in block when select and save Userful Links category.
I want to display categories where categoory_id = id
Controller
public function index ()
{
$id = 1;
$webDesigns = About::with(['categories' => function($q) use ($id) {
$q->where('category_id', $id);
}])->get();
return $webDesigns;
$webDesigns = About::with(['categories' => function($q) { $q->where('id', 1); }])->get();
$developers = About::with(['categories' => function($q) { $q->where('id', 2); }])->get();
$graphics = About::with(['categories' => function($q) { $q->where('id', 3); }])->get();
$computers = About::with(['categories' => function($q) { $q->where('id', 4); }])->get();
return view('Home.index', compact('webDesigns', 'developers', 'graphics', 'computers'));
}
Model
public function categories()
{
return $this->belongsToMany(Category::class);
}
Table(s)
Schema::create('about_category', function (Blueprint $table) {
$table->integer('about_id')->unsigned();
$table->integer('category_id')->unsigned();
$table->foreign('about_id')->references('id')->on('abouts')->onDelete('cascade');
$table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade');
});
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
Schema::create('abouts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->timestamps();
});
How to this work? OR What am I missing?
Please or to participate in this conversation.
