Подставленние значений в структуру при запросе сущности

Статус
В этой теме нельзя размещать новые ответы.

Spark108

Проверенные
Сообщения
486
Реакции
948
Баллы
5,675
Есть сущность, допустим такая:

PHP:
<?php

namespace S108DMXFE\Entity;

use XF\Mvc\Entity\Entity;
use XF\Mvc\Entity\Structure;

class Server extends Entity
{
    public static function getStructure(Structure $structure)
    {
        $structure->table = 's108dmxfe_server';
        $structure->shortName = 'S108DMXFE:Server';
        $structure->primaryKey = 'server_id';
        $structure->columns = [
            'server_id' => ['type' => self::UINT,'autoIncrement' => true, 'nullable' => true],
            'name' => ['type' => self::STR],
            'title' => ['type' => self::STR],
            'admin_user_ids' => ['type' => self::SERIALIZED],
            'port' => ['type' => self::UINT],
            'address' => ['type' => self::STR],
            'description' => ['type' => self::STR],
            'table_permissions' => ['type' => self::STR],
            'active' => ['type' => self::BOOL]
        ];

        return $structure;
    }
}

Выполняю запрос через Finder.
\XF::finder('S108DMXFE:Server')

В структуре указана таблица $structure->table = 's108dmxfe_server';, но дело в том, что мне нужно выполнить запрос к таблице, имя которой получается в процессе другого запроса. И тут вопрос. Можно ли передавать в каком-то параметре название таблицы при вызове сущности или может другой вариант есть. В общем я только начинаю разбираться в XF2, по этому многого не понимаю.
 
Указать отношение
$structure->relations = [ ]

Пример
PHP:
$structure->relations = [
'User' => [
                'entity' => 'XF:User',
                'type' => self::TO_ONE,
                'conditions' => 'user_id',
                'primary' => true
            ],
]
Но мб, что то и другое
 
Ну я просто делаю запрос к одной таблице, а в неё у каждой записи в колонке прописаны другие таблицы. Когда создаю структуру, то таблица прописывается в неё статически, а мне нужно указать программно таблицу к которой сделать запрос.

Я сейчас пробую в сам финдер подставлять значения.
 
Но это приблизительный, так как четко не сказано, что ему надо. И вообще документация открывалась?
$finder = \XF::finder('XF:Thread');$thread = $finder->with('Forum', true)->where('thread_id', 123)->fetchOne();

Или вот $finder = \XF::finder('XF:Thread');$thread = $finder->with(['Forum', 'User'], true)->where('thread_id', 123)->fetchOne();
 
Да, я смотрел доки и взгляд пал на with, но так и не понял что он именно делает.

Сейчас пробую все методы которые накопал. Заодно написал на форум, мб кто-то подскажет.
 
А потом на форуме выскакивают эксперты по сайтам-визиткам и говорят. Как же бомбит у меня от Entities, finders, and repositories, учитывая, что первое это что то бывшего DataWriter
 
.а, я понял. Он, видимо, получает название таблицы из другой таблицы и хочет делать Select из неё
Именно.

А потом на форуме выскакивают эксперты по сайтам-визиткам и говорят. Как же бомбит у меня от Entities, finders, and repositories, учитывая, что первое это что то бывшего DataWriter
Ну мне текущая реализации кажется проще, чем DataWriter в старой версии над которой шаманил методом тыка. Кое как разобрался как им пользоваться.
 
Да, я смотрел доки и взгляд пал на with, но так и не понял что он именно делает.
.with как раз соединяет данные из relations, которые ты укажешь

Ну мне текущая реализации кажется проще, чем DataWriter в старой версии над которой шаманил методом тыка. Кое как разобрался как им пользоваться.
.а не нужно шаманить методом тыка, а нужно сесть и разобраться
 
Серьезно? Средой разработки не пользуемся?
Снимок.PNG
Снимок.PNG
Снимок.PNG
Проще сейчас, не каких ссаных моделей с запросами которые даже не напоминают ООП код и уж темболее навесить кучу исключений. Норм чё
 
Серьезно? Средой разработки не пользуемся?
Посмотреть вложение 76094
Посмотреть вложение 76095
Посмотреть вложение 76096
Проще сейчас, не каких ссаных моделей с запросами которые даже не напоминают ООП код и уж темболее навесить кучу исключений. Норм чё
Не понял о чем ты сейчас сказал.... Я средой не пользуюсь, нагружает сильно.
 
Бог им дал PhpStorm и задокументированный почти весь код командой XF, а они пишут в блокнотах и не пользуемся всеми плюшками
 
Но это извращение же.
Spark108, это тогда бред, учитывая, что и PhpStorm почти автоматически генерирует комментарии к коду. Это совсем :/
На дворе 2017 год, а пользуемся какой то херотой. Не подсветки синтаксиса, ничего привет 1992-1999 что ли
 
Но это извращение же.
Spark108, это тогда бред, учитывая, что и PhpStorm почти автоматически генерирует комментарии к коду. Это совсем :/
На дворе 2017 год, а пользуемся какой то херотой. Не подсветки синтаксиса, ничего привет 1992-1999 что ли
Подсветка синтаксиса есть. NotePad++ же) Ну ладно уговорил, закачаю шторм, но чуть позже)

И да, это действительно извращение над движком...
 
В Репозиториях, для таких сделали так $this->db()->query / $this->db()->fetchAllKeyed и т.д в документации так же отражено

Снимок.PNG
А ну да у кого то просто нету же среды разработки и кодим привет 90-ые
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу