# Просмотр ресурса

Для вывода кнопки просмотра ресурса в списке нужно переопределить свойство $activeShowButton в компоненте вывода списка ресурсов.

{% code title="app/Http/Livewire/Admin/Posts/PostList.php" %}
```php
<?php

namespace App\Http\Livewire\Admin\Posts;

use App\Models\Post;
use WebVovan\RockCms\Http\Livewire\ResourceListComponent;
use WebVovan\RockCms\View\Components\ActionColumn;
use WebVovan\RockCms\View\Components\Column;
use WebVovan\RockCms\View\Components\EditLinkColumn;

class PostList extends ResourceListComponent
{
    public string $resourceClass = Post::class;

    public string $nameRouteResourceCreate = 'posts.create';
    public string $nameRouteResourceEdit = 'posts.edit';
    public string $nameRouteResourceShow = 'posts.show';

    // Активация кнопки просмотра ресурса
    public bool $activeShowButton = true;

    public array $search = ['title'];

    /**
     * Колонки
     *
     * @return array
     */
    public function columns(): array
    {
        return [
            Column::make('id', 'ID')
                ->sortable(),
            EditLinkColumn::make('title', 'Заголовок')
                ->sortable(),
            Column::make('created_at', 'Дата'),
            ActionColumn::make('Действия')
                ->addClass('text-center'),
        ];
    }
}

```
{% endcode %}

В blade шаблоне в компонент нужно передать модель для редактирования.

{% code title="resources/views/admin/posts/show.blade.php" %}
```php
...

@section('content')
    <livewire:admin.posts.post-item :resource="$model"/>
@stop
```
{% endcode %}

{% hint style="info" %}
Переменная $model передается из роута. Подробнее про настройку роутов [здесь](../nastroika/routy).
{% endhint %}

Создание livewire компонента:

```
php artisan make:livewire Admin/Posts/PostShow
```

Для правильной работы нужно отнаследоваться от ResourceComponent.

{% code title="app/Http/Livewire/Admin/Posts/PostShow.php" %}
```php
<?php

namespace App\Http\Livewire\Admin\Posts;

use App\Models\Post;
use WebVovan\RockCms\Http\Livewire\ResourceComponent;

class PostShow extends ResourceComponent
{
    public Post $resource;

    public string $resourceClass = Post::class;
    public string $nameRouteResourceList = 'posts.list';
    public string $nameRouteResourceEdit = 'posts.edit';

    protected $rules = [
        'resource.title' => 'string|required',
        'resource.desc' => 'string',
    ];

    public function init()
    {
    }

    public function save()
    {
    }

    public function render()
    {
        return view('livewire.admin.posts.post-show');
    }
}

```
{% endcode %}

В шаблоне компонента просто перечисляем список полей с атрибутом readonly.

{% hint style="info" %}
Rock.Cms поставляется с большим количеством уже готовых [полей](sozdanie-i-redaktirovanie-resursa/polya). У большинства есть атрибут readonly, который выводит содержимое только для чтения.
{% endhint %}

{% code title="resources/views/livewire/admin/posts/post-show.blade.php" %}
```php
<div>
    <x-rock-cms::fields.input readonly field="resource.title" title="Заголовок"/>
    <x-rock-cms::fields.editor
        :model="$resource->desc"
        field="resource.desc"
        enableMedia
        readonly
        title="Описание"/>
</div>
```
{% endcode %}

В итоге получаем такую страницу.

![](https://973475072-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTEka831UoiHiDOJAdYbS%2Fuploads%2FXLiKBcPEXfkyAodjn1wm%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202022-06-21%20%D0%B2%2016.40.26.png?alt=media\&token=1d16ecde-ed2d-414f-b370-4778066dd10b)
