Иван
Алексей
уже интереснее) что ты там собрался хранить?
есть жоска заданные названия таблиц в разных базах, имена которых будут использоваться как в модели, которая ещё не знает, к какой соседней модели она сделает запрос, так и в контроллерах, для сравнения строк и пр.
Иван
оу оу, палехче
Иван
в контроллерах не надо строки никакие сравнивать
Aleksandr
что-то в этой архитектуре меня смущает
Иван
одна модель - одна таблица
Aleksandr
название таблицы хранится в модели, в tableName()
Иван
а бывают вообще динамические названия таблиц в базах, не жестко заданные?)
Aleksandr
если надо связать как-то два active record'a используй дополнительную модель для связки
Aleksandr
бывают с префиксом
Aleksandr
{{%tablename}}
Алексей
блин, так и знал, что ща навлеку на себя праведный гнев))))
Aleksandr
@garpun лайфхак - нарисуй сначала схему
Aleksandr
потом посмотри на нее раз 7, и нарисуй еще несколько раз)
Алексей
Кароче, поиск идёт по таблице Сфинкса, он отдаёт результат, с id записи и названием таблицы в другой базе, где нужно взять строку с этим айди. Результат выборки из Сфинкса мне надо куда-то вернуть, так как с базой ща происходят пертурбации, то я возвращаю обратно в контроллер результат, где на основании пришедшего названия таблицы уже делаю запрос в другую модель, но для этого мне надо сравнить пришедшее название таблицы, с хранящимся ГДЕ-ТО, вот уже надо и в контроллере доступ к названию таблиц и в модели(ях) надо будет, вот я и задумался над тем, где бы мне глобально хранить названия таблиц.
Aleksandr
есть принцип единственной зависимости, ActiveRecord умеет работать с одной конкретной таблицей - записывать и получать (ну по идеи так должно быть, но во всех фреимворках - это золотой молоток конечно), и должна быть модель, которая просто расширяет Model, которая хранит логику их взаимодействия. Больше взаимодействий - больше моделей. Но одна модель, должна отвечать за что-то одно. Константы - это неизменные переменные класса.
Aleksandr
ну
Aleksandr
в контроллере ты работаешь с моделями, а модели с базой
Aleksandr
тебе не надо хранить названия таблиц. создай модель и передай в нее модели, а там сравнивай эти модели как хочешь
Иван
зачем сфинкс знает названия таблиц в базе, не понимаю...
Алексей
Алексей
Aleksandr
я тоже пока, но так придумал мой тимлид (начинающий)
тимлиду подарите книжку "Принципы, паттерны и методики гибкой разработки на языке C# - Мартин М., Мартин Р. С.", привяжите к стулу, и не отпускайте, пока не прочитает от корки до корки раз 10
Ivan
В Sphinx надо было создавать отдельные индексы на отдельные таблицы. И в AR модели на отдельную таблицу сделать стандартную связь has one на основную AR модель из РСУБД
Алексей
Aleksey
ты должно делать грамотно в первую очередь
Aleksandr
Aleksandr
а лучше пусть идет домой)
Алексей
Anonymous
$cat = Category::find()->select(['category.name'])->innerJoin('product', 'product.category_id = category.id')->asArray()->groupBy('category.name')->all();
$prod = Product::find()->select(['name'])->orderBy('name')->asArray()->all();
tojson($cat, $prod);
функция. Файлы создает четко в папку web
function tojson($cat, $prod){
$json = json_encode($cat);
file_put_contents('cat.json', $json);
$json = json_encode($prod);
file_put_contents('prod.json', $json);
}
[{"name":" CATS BEST (\u041a\u044d\u0442c \u0411\u0435\u0441\u0442)"},{"name":" Ever Clean (\u042d\u0432\u0435\u0440 \u041a\u043b\u0438\u043d, \u0421\u0428\u0410)"},{"name":" Pi-Pi-Bent , (\u041f\u0418 \u041f\u0418 \u0411\u0435\u043d\u0442, \u0420\u043e\u0441\u0441\u0438\u044f)"}, ...
<?php $form = ActiveForm::begin(); ?>
<?php
//$cat = json_decode(file_get_contents('cat.json'));
//$prod = json_decode(file_get_contents('prod.json'));
debug($cat);
echo \kartik\widgets\Typeahead::widget([
'name' => 'list',
'options' => ['placeholder' => 'Выберите производителя или товар:'],
'pluginOptions' => ['highlight'=>true],
'dataset' => [
[
'prefetch' => 'cat.json',
'datumTokenizer' => "Bloodhound.tokenizers.obj.whitespace('value')",
'display' => 'value',
'templates' => [
'header' => '<h3 class="league-name">Производители:</h3>'
]
],
[
'prefetch' => 'prod.json',
'datumTokenizer' => "Bloodhound.tokenizers.obj.whitespace('value')",
'display' => 'value',
'templates' => [
'header' => '<h3 class="league-name">Товары:</h3>'
]
]
]
]);
?>
<?php ActiveForm::end(); ?>
НЕ ВЫВОДИТ СПИСОК. все стили и яваскрипты (нужные typehead) из ассетса цепляет.
что делаю не так? Путь к файлам json уже тоже полностью прописывал - не помогает.
Алексей
еба
Anonymous
Здравствуйте. Помогите, пожалуйста
Anonymous
саму форму на странице показывает. Поле для ввода данных тоже. а список не хочет
👻
'prefetch' => 'cat.json', уверен что его подхватывает ?
👻
ты ж не в корне сайта явно работаеш с формой
Alex
Всем привет, есть такой вопрос: когда пытаюсь провести тест на codeception используя фикстуру user, то когда пытаюсь например провести тест sign up, то есть регистрацию, то после этого запись, которая была в таблице user удаляется. Кто знает, с чем это может быть связано? Если фикстуру не использую, то запись не удаляется.
👻
+ грузить данные в файл потом том читать
может лучше в базу положить и из базы брать по человечески
Anonymous
Anonymous
[{"name":" CATS BEST (\u041a\u044d\u0442c \u0411\u0435\u0441\u0442)"},{"name":" Ever Clean (\u042d\u0432\u0435\u0440 \u041a\u043b\u0438\u043d, \u0421\u0428\u0410)"},{"name":" Pi-Pi-Bent , (\u041f\u0418 \u041f\u0418 \u0411\u0435\u043d\u0442, \u0420\u043e\u0441\u0441\u0438\u044f)"}, ... - то, что в файле лежит
👻
формат не верный помоему
👻
ща 1 сек
Ivan
В следующую среду fpx asset plug-in превратиться в тыкву, нужно обновиться. http://www.yiiframework.com/news/148/important-note-about-bower-and-the-asset-plugin/
Anonymous
Тимлидов развелось, ёпрст))
Anonymous
Каждый второй тимлид уже
👻
Anonymous
Anonymous
АЛИЛУЯ
Алексей
Ivan
Но это конечно не меняет того что надо давно уже перейти на asset packagist
Aleksey
отличный шанс подсидеть
Anonymous
Anonymous
😁тимлид админ который руководит программистами
Anonymous
Пхахахх, он не учёный ещё случаем?
Anonymous
@KoJIT смотри, тут до боли знакомые ситуации
Алексей
Borys
Anonymous
Aleksandr
👻
Borys
а как же
И модулей клепанул, да? :D
Anonymous
Borys
Alex
Кто работал с codeception?
Borys
Дмитрий
Много кто наверное) Кто тестированием занимался
Aleksandr
@za4me чтобы приложение поддерживаемое было, всегда надо придерживаться архитектуры фреимворка, который используется
Borys
:D
Borys
А если фреймворк навязывает неправильную архитектуру?
Aleksandr
ну что поделать