@Parsifal31017
Программист

Как вывести данные в blade?

Роутер подключает шаблон: /resources/views/pages/projects.blade.php
@extends('layouts.app')
@section('title', $page->title)
@section('seo_title', $page->seo_title)
@section('seo_description', $page->seo_description)
@section('seo_keywords', $page->seo_keywords)
@if ($page->hasImage('seo_image', 'default'))
  @section('seo_image', app()->make('url')->to($page->image('seo_image', 'default')))
@endif
@section('content')
  <x-projects />
@endsection

Шаблон подключает класс проектов и его шаблон:
/app/View/Components/Projects.php
<?php
namespace App\View\Components;
use App\Models\Project;
use Illuminate\View\Component;
use Illuminate\Database\Eloquent\Collection;
class Projects extends Component
{
    public Collection $projects;
    public array $tags = [];

    public function __construct()
    {
        $this->projects = Project::select('id')->published()->get();
        $this->tags[] = [
            'name' => __('projects.all_projects'),
            'slug' => 'all',
        ];
        foreach ($this->projects as &$project) {
            $tags = $project->tags()->get();
            foreach ($tags as &$tag)
                $this->tags[] = [
                    'name' => $tag->name,
                    'slug' => $tag->slug,
                ];
        }
    }

    public function render()
    {
        return view('components.projects');
    }
}

/resources/views/components/projects.blade.php
<div>
  <h1>{{ Lang::choice('projects.works', 1) }}</h1>
    @if($project ?? '' )
      <x-project id="{{ $project['id'] }}" />
    @endif
</div>

Шаблон проектов подключает класс и шаблон конкретного проекта:
/app/View/Components/Project.php
<?php
namespace App\View\Components;
use App\Models\Project as ModelsProject;
use Illuminate\View\Component;
class Project extends Component
{
    public function render()
    {
        return view('components.project.solid');
    }
}

/resources/views/components/project/solid.blade.php
@if($project)
<div style="background: {{ $colors[0] }}">
  @if (!is_null($project->url))
    <span>{{ $project->present()->urlHost() }}</span>
  @endif
  @if (!is_null($project->url))
    <a href="{{ $project->url }}" target="_blank" class="stretched-link"></a>
  @endif
</div>
@endif

В самих шаблонах и их классах уже прокинуты какие-то данные, но их недостаточно.
Необходимо получить/вывести недостающую информации (Название, ссылку, теги, цвет).
Заранее спасибо
  • Вопрос задан
  • 160 просмотров
Решения вопроса 1
@inFureal
Так в чем проблема? Берешь и выводишь. Не понимаю в чем вопрос.
в solid.blade.php переменная $project приходит? Я так понимаю это какая-то модель. Ну так же и тяни через -> остальные поля
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы