Article
- Title
- Quibusdam tenetur id minima quia id ut praesentium aut.
- Author
- Amari Shields
- Public
- yes
- Body
- Deserunt unde voluptatum voluptate. Dolorem velit nesciunt maxime necessitatibus alias veritatis sed. Est sit quis ut tempore maiores et et mollitia. Facere nihil illo rerum qui eos commodi.
module structure
demo-module/
├─ Livewire/
│ ├─ Home.php
│ ├─ ArticlesTable.php
│ ├─ ArticlesView.php
│ └─ ArticlesEdit.php
├─ Views/
│ ├─ home.blade.php
│ ├─ articles_table.blade.php
│ ├─ articles_view.blade.php
│ ├─ articles_edit.blade.php
│ ├─ menu.blade.php
│ └─ frontend_menu.blade.php
├─ Models/ Article.php, Author.php
├─ Database/ Migrations/, Seeders/
├─ config.php layout, menu entry
├─ routes.php
└─ DemoModuleServiceProvider.php
route
routes.php
Route::get('demo/articles/view/{article:id}', ArticlesView::class)
->middleware(['web'])
->name('demo.articles.view')
->crumbs(fn ($crumbs, $article) => $crumbs->parent('demo.articles')->push(__('View Article'), route_lang('demo.articles.view', $article)));
component
Livewire/ArticlesView.php
<?php
namespace App\Modules\Demo\Livewire;
use App\Modules\Demo\Models\Article;
use Livewire\Component;
class ArticlesView extends Component
{
public Article $article;
public function mount(Article $article): void
{
$this->article = $article;
}
public function render()
{
return view('demo::articles_view')->layout('layout::admin');
}
}
view
Views/articles_view.blade.php
<x-rpd::card>
<x-rpd::view title="Article">
<x-slot name="buttons">
<x-rpd::button route="demo.articles" color="outline-primary" label="List" />
<x-rpd::button :route="['demo.articles.edit', $article->id]" color="outline-primary" label="Edit" />
</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>
<dt class="col-3">{{ __('Public') }}</dt>
<dd class="col-9">{{ $article->public ? __('yes') : __('no') }}</dd>
<dt class="col-3">{{ __('Body') }}</dt>
<dd class="col-9">{!! $article->body !!}</dd>
</dl>
</x-rpd::view>
</x-rpd::card>