В Laravel 7, как получить родительскую категорию alias
?
У меня есть две таблицы:
Schema::create('blog_categories', function (Blueprint $table) {
$table->id();
$table->bigInteger('parent_id')->unsigned()->default(1);
$table->string('alias')->unique();
$table->string('title');
$table->string('description')->nullable();
$table->timestamps();
$table->softDeletes();
});
Schema::create('blog_posts', function (Blueprint $table) {
$table->id();
$table->bigInteger('category_id')->unsigned();
$table->bigInteger('user_id')->unsigned();
$table->string('alias')->unique();
$table->string('title');
$table->text('fragment')->nullable();
$table->text('content_html');
$table->boolean('is_published')->default(false);
$table->timestamp('published_at')->nullable();
$table->timestamps();
$table->softDeletes();
$table->foreign('user_id')->references('id')->on('users');
$table->foreign('category_id')->references('id')->on('blog_categories');
$table->index('is_published');
});
В моделях:
class BlogPost extends Model
{
public function category()
{
return $this->belongsTo(BlogCategory::class);
}
public function parentCategory()
{
return $this->belongsTo(BlogCategory::class,
'id', 'parent_id');
}
}
class BlogCategory extends Model
{
public function parentCategory()
{
return $this->belongsTo(BlogCategory::class,
'parent_id', 'id');
}
}
И маршрут:
Route::group(['namespace' => 'Blog', 'prefix' => 'blog'], function () {
Route::get('posts', 'BlogPostController@index')->name('blog.posts');
Route::get('{parentCategory}{category}/{alias}', 'BlogPostController@showPost')->name('user.blog.showPost');
});
В контроллере у меня есть следующий метод:
public function index()
{
$getAllWithPaginate = $this->blogPostRepository->getAllWithPaginate();
return view('blog', compact('getAllWithPaginate'));
}
В представлении я могу получить доступ к $item->category->alias
и $item->alias
, но как можно Я имею доступ к псевдониму родительской категории?
@foreach ($getAllWithPaginate as $item)
<a href="{{ route('user.blog.showPost', [**question here (how get parent category alias?)**, $item->category->alias, $item->alias]) }}" class="for-posts-link">
@enforeach
Что-то вроде этого параметра parentCategory->alias
в маршруте? Спасибо за любую помощь.