Laravel по-русски

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

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

#1 Laravel 6/7/8/9/10 » laravel passport token время жизни » 02.07.2020 17:50:01

Сергей
Ответов: 1

Добрый день, у токенов есть поле expires_at,

ставлю дату на вчерашнюю но всё равно авторизация по токену проходит, как запретить авторизацию если "время жизни" токена прошло?

спасибо

#2 Laravel 5.x » Выборка уникальных значений через отношения » 22.05.2017 18:26:28

Сергей
Ответов: 0

День добрый,

Имею такую структуру каталога

060fd0cd93b248169bf72595673fc609.png

как получить зная group_id, уникальные значения value из items_options

например:

[
{id: 1, title: Размер, value: [ 44,45,48]},
{id: 3, title: Цвет: value: [Синий, Красный]}
]

#3 Re: Laravel 5.x » Множественный выбор из таблицы по key value » 20.04.2017 20:56:09

constb пишет:

надо выбирать сразу продукты с ->whereHas на options с нужными условиями. подробнее про whereHas в документации

если есть возможность помочь то https://laravel.ru/forum/viewtopic.php?id=2257

#4 Re: Laravel 5.x » Множественный выбор из таблицы по key value » 20.04.2017 20:54:25

сделал циклом но как я понимаю решение не идеальное

        $items_id_arr = [];
        foreach ($inp_filters as $key => $val) {
            if ($val) {
                $query_items_id = ItemOption::select('item_id');
                if ($items_id_arr) $query_items_id->whereIn('item_id', $items_id_arr);
                $query_items_id->where('option_id', $key);
                $query_items_id->where('value', $val);
                $items_id_arr = array_flatten(
                    $query_items_id->get()->toArray()
                );
                $query_items_id = null;
            }
        }

#5 Re: Laravel 5.x » Множественный выбор из таблицы по key value » 19.04.2017 23:10:21

AlexeyMezenin пишет:

Если я правильно понял, то:

Model::where(function ($q) {
    $q->where('option_id', 1)->where('value', 'test1');
})
->orWhere(function ($q) {
    $q->where('option_id', 2)->where('value', 'test2');
})
->pluck('item_id');

Если уникальные ключи нужны, то еще через ->unique() можно прогнать.

Спасибо, не совсем это должно работать как фильтр, у товара есть параметры, мне нужно выделить те ид которые проходят по запросам

есть ид параметра и значение например:

1=>настольный
2=>чёрный
3=>гарантия
4=>intel
5=>....

мне нужно выбрать тот товар который подойдёт (option_id=1 и value=чёрный) и (option_id=4 и value=intel)

#6 Laravel 5.x » Множественный выбор из таблицы по key value » 19.04.2017 20:03:37

Сергей
Ответов: 6

Вечер добрый, подскажите как выбрать из таблицы по option_id и value

имею таблицу:

| item_id | option_id | value |
|---------|-----------|-------|
| 1       | 1         | test1 |
| 2       | 1         | test  |
| 3       | 1         | test1 |
| 4       | 2         | test1 |
| 5       | 2         | test  |
| 1       | 2         | test2 |
| 2       | 2         | test  |
| 3       | 3         | test  |
| 3       | 2         | test2 |
| 5       | 3         | test  |

делаю двойной выбор (должно получиться item_id [1, 3]):

        select('item_id')
            ->where( function ( $query )
            {
                $query
                    ->where('option_id', 1)
                    ->where('value', 'test1');
            })
            ->where( function ( $query )
            {
                $query
                    ->where('option_id', 2)
                    ->where('value', 'test2');
            })
            ->get();

но выдаёт пустой запрос, подскажите как сделать множественный выбор

#7 Re: Laravel 5.x » Запрос для каталог/товар » 19.04.2017 15:53:12

если поиск осуществлять в options то выводятся теже товары только с массивом options где присутствует в value 23

    public function options()
    {
        return $this->belongsToMany('App\Option', 'items_options')->where('value', '23')->withPivot('sort', 'value');
    }

#8 Re: Laravel 5.x » Запрос для каталог/товар » 19.04.2017 15:38:26

Вылезает ошибка

Unknown column 'items_groups.items_options.option_id'....

всё правильно в таблице items_groups нет items_options.option_id

как именно в items_options сделать 'where '

#9 Re: Laravel 5.x » Запрос для каталог/товар » 18.04.2017 02:05:28

Подскажите как сделать поиск по значению в опциях

вот так не получается:

$group_main = Group::find($id);

        return $group_main
                ->options()
                ->wherePivot('options.value', 'тест')
                ->wherePivot('options.option_id', 10)
                ->where('price', '>' , $min)
                ->where('price', '<' , $max)
                ->paginate(15);

#11 Re: Laravel 5.x » Запрос для каталог/товар » 05.02.2017 12:33:38

$group = Group::find(1);
        echo $group->items->with('options');


почему with не присоединяется?
BadMethodCallException

#12 Re: Laravel 5.x » Запрос для каталог/товар » 04.02.2017 15:07:37

Alukard19918 пишет:

а у вас опции должны идти вместе с группами ? или в определенном товаре?

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

#13 Re: Laravel 5.x » Запрос для каталог/товар » 04.02.2017 13:58:10

Вот так работает: но options не выводятся

    public function index()
    {
        $group = Group::find(1);
        echo $group->items;
    }

#14 Re: Laravel 5.x » Запрос для каталог/товар » 04.02.2017 13:20:35

ошибся вот так:

c4723ccebbac49bf98247f8eea79b53b.png

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Option extends Model
{

    protected $table = 'options';
    public $timestamps = false;

    protected $fillable = ['title'];

}

#15 Re: Laravel 5.x » Запрос для каталог/товар » 04.02.2017 13:07:44

Сделал так:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Group extends Model
{

    protected $table = 'groups';
    public $timestamps = false;

    protected $fillable = ['title'];

    public function items()
    {
        return $this->belongsToMany('App\Item', 'items_groups');
    }

}
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Item extends Model
{

    protected $table = 'items';
    public $timestamps = false;

    protected $fillable = ['title', 'price', 'description'];

    public function options()
    {
        return $this->belongsToMany('App\Option', 'items_options');
    }

}
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Option extends Model
{

    protected $table = 'options';
    public $timestamps = false;

    protected $fillable = ['sort', 'title', 'value'];

}

2cccc8e802b54b48a5309cda957ac524.png

Пытаюсь вывести но ошибка Call to a member function items() on null

$group = Group::find(1)->items();

#16 Laravel 5.x » Запрос для каталог/товар » 03.02.2017 18:10:26

Сергей
Ответов: 12

День добрый, хочется сделать каталог по такой схеме:

groups
таблица группа:
id
title

items
таблица товар
id
title
price
description

options
таблица параметры товара
id
title
value

items_options
таблица совмещения товара и параметров (у товара может быть несколько характеристик)
option_id
item_id

items_groups
таблица совмещения товара и группы (товар может принадлежать нескольким группам)
group_id
item_id

но вот как всё совместить? как будут выглядеть модели для этих таблиц?

например чтобы вывести все товары по id группы со всеми характеристиками?
ка вывести товар по id со всеми характеристиками?

как сохранить (при добавлении товара) в бд с характеристиками?

#18 Re: Laravel 4 » Выборка из связанных таблиц » 28.09.2014 17:33:42

Что то я совсем запутался, а как бы это выглядело? а если в items_options_value не будет записей?

#19 Re: Laravel 4 » Выборка из связанных таблиц » 28.09.2014 12:49:30

а самое главное как в дальнейшем сделать выборку obj по ключам value из items_options_value

#20 Laravel 4 » Выборка из связанных таблиц » 28.09.2014 12:19:54

Сергей
Ответов: 8

День добрый, имею 4 таблицы:


obj
id
item_id

items
id
name
description

items_options
id
name

items_options_value
id
item_id
option_id
value

Подскажите, я совсем запутался, как мне из модели obj выбрать items со всеми items_options_value принадлежащих items

#21 Re: Laravel 4 » модель со связаными таблицами » 22.09.2014 22:48:16

Спасибо, подскажите а как занести информацию, если например связанных таблиц будет три?

#23 Laravel 4 » Оптимизировать routes » 05.08.2014 10:27:54

Сергей
Ответов: 5

День добрый, создал контроллер но не по философии laravel а чуть упростил (соединив вывод формы и запись формы)
и столкнулся с такой проблемой

Получается для 10 контроллеров мне нужно будет писать кучу кода? можно ли как то это упростить?
если сделать цыклом где имена контроллеров будет выдёргиваться из массива?

Route::get('category', array('uses' => 'CategoryController@index', 'as' => 'category.index'));
Route::get('category/create', array('uses' => 'CategoryController@edit', 'as' => 'category.create'));
Route::get('category/edit/{id}', array('uses' => 'CategoryController@edit', 'as' => 'category.edit'));
Route::post('category/store', array('uses' => 'CategoryController@store', 'as' => 'category.store'));
Route::post('category/store/{id}', array('uses' => 'CategoryController@store', 'as' => 'category.store'));
Route::get('category/destroy/{id}', array('uses' => 'CategoryController@destroy', 'as' => 'category.destroy'));

Route::controller() не совсем подходит т.к. нет имён роутов
Route::resource() не подходит т.к. (update и store) и (create и edit) нельзя объединить

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