Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 13.11.2017 11:36:38

Как правильно реализовать секцию портфолио?

Приветствую. Я изучаю laravel. И у меня возникли трудности с реализацией секции портфолио. Как видите на скрине ниже она у меня сортируется с помощью плагина isotop.

Я так понимаю, что мне нужно создать 2-е таблицы.

В одной будут сами работы из портфолио, а в другой список категорий (наверное, так будет правильнее назвать) которые обведены синим.

Кто сталкивался с этим плагином знает, как эта чепуха работает и сортирует элементы.

Не проблема для каждой записи создать поле в таблице и внести туда нужные значения чтобы при клике появлялись нужные работы из портфолио.

Я не понимаю нужно ли мне это как-то связывать? Я так понимаю тут связь один ко многим.

Просветите меня как поступить. Как правильно реализовать эту секцию?

Спасибо заранее.
5a094c3ccf33e163509236.png

Не в сети

#2 13.11.2017 17:46:05

Re: Как правильно реализовать секцию портфолио?

У меня есть категории и статьи (вместо портфолио), таблица с категориями отдельно, в таблице статей внешний ключ на id таблицы категорий. Один ко многим.
Это из миграции change_articles_table:

$table->integer('category_id')->unsigned()->default(1);
$table->foreign('category_id')->references('id')->on('categories');

Это из модели Article

public function category(){
        return $this->belongsTo('App\Category');
    }

Это из модели категорий:

 public function articles(){
        return $this->hasMany('App\Article');
    }

Не в сети

#3 16.11.2017 10:19:03

Re: Как правильно реализовать секцию портфолио?

У меня есть категории и статьи (вместо портфолио), таблица с категориями отдельно, в таблице статей внешний ключ на id таблицы категорий. Один ко многим.

После того как я разместил здесь пост. Всё же сделал подобным образом, но оно у меня не работает.

Я создал 3 таблицы:
1. Тут работы из портфолио с нужными полями (таблица works).
3b69e286c9d8.jpg

2. Список кнопок с помощью которых осуществляется фильтрация (таблица recents).
67054c86cc3c.jpg

3. Связующая таблица (таблица works_item).
640ce5b9a030.png

Как реализованы связи:
Поле из таблицы works_item - `recent_id` связанно с полем `id` в таблице recents

$table->foreign('recent_id')->references('id')->on('recents');

Ну а тут связь с `id` в таблице works

$table->foreign('works_id')->references('id')->on('works');

Далее я создал модели в которых определил отношения:

class Work extends Model
{
    public function resents()
    {
        return $this->belongsToMany('App\Recent', 'work_items');
    }
}

class Recent extends Model

{
    public function work()
    {
        return $this->belongsToMany('App\Work', 'work_items');
    }
}

Вывести сами работы труда не составило:

@if($work)
    @foreach($work as $item)
        <div class="projects mix nz-clearfix *" data-grid="ninzio_01">
            <div class="nz-thumbnail"><img width="640" height="520" src="{{asset(env('THEME'))}}/upload/{{$item->img}}" class="attachment-Montserrat-Ninzio-Half size-Montserrat-Ninzio-Half wp-post-image" alt="portfolio10" />
                <a class="ninzio-overlay" href="#"></a>
                <div class="project-info-tab">
                    <a class="project-more" href="#"></a>
                    <h4 class="project-title">{{$item->title}}</h4>
                    <div class="projects-category"><a href="#" rel="tag">Repairing</a> | <a href="#" rel="tag">Restyling</a></div>
                </div>
            </div>
        </div>
    @endforeach
@endif
<div class="projects mix nz-clearfix * _________" data-grid="ninzio_01">

Там где нижнее подчёркиваен должны быть классы идентичные значениям из data-filter у кнопок на которые наживаешь.

Не знаю как их вывести. то есть я пытался вывести данные из связанной таблицы(ну так я понял) {{$item->resents->item}}

<div class="projects mix nz-clearfix * {{$item->resents->item}}" data-grid="ninzio_01">

Я так понял что в моём случае связь должна быть многие ко многим. То есть множество работ может принадлежать к множеству кнопок сортировки и на оборот к множеству кнопок может принадлежать много работ.

Где вообще можно увидеть как реализуются подобные вещи?

Изменено Strannik (16.11.2017 10:33:23)

Не в сети

#4 17.11.2017 13:19:37

Re: Как правильно реализовать секцию портфолио?

Вопрос решен!

Не в сети

Подвал раздела