Article Detail

Title
Aut tempore et est eveniet omnis.
Author
Deontae Moen

module structure


laravel/
├─ app/
│  ├─ Modules/
│  │  ├─ Demo/
│  │  │  ├─ Components/
│  │  │  │  ├─ Articles/
│  │  │  │  │  ├─ views/
│  │  │  │  │  │  ├─ articles_edit.blade.php
│  │  │  │  │  │  ├─ articles_table.blade.php
│  │  │  │  │  │  ├─ articles_view.blade.php
│  │  │  │  │  ├─ ArticlesEdit.php
│  │  │  │  │  ├─ ArticlesTable.php
│  │  │  │  │  ├─ ArticlesView.php
│  │  │  │  ├─ routes.php

route

Components/routes.php


Route::get('demo/article/view/{article:id}'ArticlesView::class)
    ->
middleware(['web'])
    ->
name('demo.articles.view')
    ->
crumbs(function ($crumbs$article) {
        
$crumbs->parent('demo.articles')->push('View Article'route('demo.articles.view'$article));
    });

component

Components/Articles/ArticlesView.php


<?php

namespace App\Modules\Demo\Components\Articles;

use 
App\Modules\Demo\Models\Article;
use 
Livewire\Component;


class 
ArticlesView extends Component
{
    public 
$article;

    public function 
mount(Article $article)
    {
        
$this->article $article;
    }

    public function 
render()
    {
        return 
view('demo::Articles.views.articles_view')->layout('demo::admin');
    }
}

view

Components/Articles/views/articles_view.blade.php


<x-rpd::card>
    <
x-rpd::view title="Article Detail">
      <
x-slot name="buttons">
        <
a href="{{ route('demo.articles') }}" class="btn btn-outline-primary">list</a>
        <
a href="{{ route('demo.articles.edit',$article->id) }}" class="btn btn-outline-primary">edit</a>
      </
x-slot>

      <
dl class="row">
        <
dt class="col-3">Title</dt>
        <
dd class="col-9">{{ $article->title }}</dd>
        <
dt class="col-3">Author</dt>
        <
dd class="col-9">
            {{ 
$article->author->firstname }}
            {{ 
$article->author->lastname }}
        </
dd>
      </
dl>

    </
x-rpd::view>
</
x-rpd::card>