Korg
ну я правильно мыслю, что если у меня через неделю нужно будет привязать отзывы к другой сущности, то лучше связь отзыва и сущности держать в другой таблице? например review_to_user или review_to_article.... ?
Andrey
ну я правильно мыслю, что если у меня через неделю нужно будет привязать отзывы к другой сущности, то лучше связь отзыва и сущности держать в другой таблице? например review_to_user или review_to_article.... ?
смотря сколько у тебя будет сущностей. Можно для каждой делать свою таблицу, а можно просто добавить в таблицу отзывов еще поле с названием сущности. И когда ты тянешь по связям еще ставишь условие чтобы выбрало отзывы к нужной сущности
Korg
как удобнее, можешь и в одной. Но и тут 3ю делать не обязательно
как обойтись без 3-й таблицы, что бы можно было отзыв привязать к нужной сущности? объясни пожалуйста)
Korg
типа в таблицу отзывов добавить поля entity_id и entity_type ? как-то так?
Korg
а есть пример или ссылка на доку? как сделать связь по двум полям?
Dmitry
а есть пример или ссылка на доку? как сделать связь по двум полям?
https://laravel.com/docs/5.5/eloquent-relationships#defining-relationships Polymorphic Relations там как раз пример с коментами как тебе и надо :)
Korg
Спасибо!
Alexander
Кто деплоит(ил) с помощью Delpoyer? Подскажите как настроить его. <?php namespace Deployer; require 'recipe/common.php'; require 'recipe/laravel.php'; set('repository', '1. https://ссылкаНаРепозиторийБитбакет верно?'); host('production', '2. Папка куда деплоить?') ->user('3. имя какого пользователя? root?') // ->identityFile() это что ? ->set('deploy_path', '4. еще раз куда деплоить? полный путь?'); add('shared_files', [ '.env' ]); ?>
Alexander
identityFile как я понял что-то с ssh ключами, но не понял где взять)
Alexander
Погодите ка.. Это настраивается на моей машине?? не на сервере?
invariance
HOLY MOLY
Leonid
Пытаюсь воспользоваться директивой ProxyPass в апаче для работы с node.js и socket.io. <Location /node> ProxyPass http://localhost:8890 ProxyPassReverse http://localhost:8890 </Location> Тут появляется проблема с тем, что socket.io делает запрос на /node/socket.io по протоколу ws и сервер должен поменять протокол и вернуть корректный 101 ответ. Нагуглил, что нужно добавить эти строки: RewriteCond %{REQUEST_URI} ^/node/socket.io [NC] RewriteCond %{QUERY_STRING} transport=websocket [NC] RewriteRule /(.*) ws://localhost:8890/$1 [P,L] Они немного помогли, но всё равно дальше сообщения failed: Error during WebSocket handshake: Invalid status line не пробраться. Что ещё нужно добавить к конфигурации? Без апача локально всё работает. 101 возвращает.
Alexander
На сервере сделал id_rsa и id_rsa.pub скачал себе. Сделал такой deploy.php <?php namespace Deployer; require 'recipe/common.php'; require 'recipe/laravel.php'; set('repository', 'https://ссылка на битбакет'); host('production', 'IP сервера') ->user('root') ->identityFile('/.ssh/id_rsa.pub', '/.ssh/id_rsa', 'Пароль, указанный при создании этих файлов') ->set('deploy_path', '/home/ПутьКудаЗалить/public_html') ; add('shared_files', [ '.env' ]); ?> Через composer поставил Deployer Установил OpenSSH, настроил окружение OpenServer консоли (set PATH=%ConEmuBaseDir%\Scripts;%PATH%;C:\Program Files (x86)\OpenSSH\bin;C:\Program Files (x86)\OpenSSH\bin\ssh.exe ) чтобы из консоли увидел 'ssh'. Вроде запустил, уже минут 10 висит на Executing task deploy:prepare Он что-то делает или завис?))
Dmitry
если с ключем для тебя тяжко, то сделай просто авторизацию по паролю
Golodnyi
$ignoreFile = realpath('.') . '/.gitignore'; товарищи, как думаете, сработает ли этот код на шиндовсе?
Golodnyi
у кого шиндовс есть с пхп, проверьте <?php file_put_contents('./test.txt', 'Hello'); echo file_get_contents(realpath('.') . '/.test.txt'); ?>
Andrey
у кого шиндовс есть с пхп, проверьте <?php file_put_contents('./test.txt', 'Hello'); echo file_get_contents(realpath('.') . '/.test.txt'); ?>
В строке ошибка: '/.test.txt' Точка в названии файла. Запись идет в файл с другим именем.
Andrey
ты специально пишешь "шиндовс"?
Golodnyi
ну это абстрактный код, я просто опечатался, почини его)
Alexander
не могу на сайте Deployer найти как авторизоваться по логин:пароль...
Alexander
если с ключем для тебя тяжко, то сделай просто авторизацию по паролю
Golodnyi
мне тут интересна суть, что realpath вернет обратные слэши, а тут захардкожен правильный слэш, тоесть путь будет типа C:\users\golodnyi/test.txt и винда это схавает или скажет файл не найден?
Golodnyi
тоесть тут только проблема эстетики? Ну все равно ПР отправлю
Golodnyi
ну линуксу этот код и не страшен
Anton
Ну вообще есть константа directory separator
Anton
Или как-то типа тоо
Anton
Ее пользовать комильфо.
Golodnyi
да, я слэш на нее и заменил
Alexander
<?php namespace Deployer; require 'recipe/common.php'; require 'recipe/laravel.php'; set('repository', 'https://bitbucket repository'); host('production', 'IP') ->user('root') ->password('Пароль') ->set('deploy_path', '/home/Куда/public_html') ; add('shared_files', [ '.env' ]); ?>
Alexander
Кричит [Error] Call to undefined method Deployer\Host\Host::password()
Golodnyi
Archakov
Подскажите, как вернуть в записью, все комментарии к ней?
Archakov
Есть таблица с записями и комментариями. В комментах есть post_id
Николай
Тупой вопрос, ребят - никогда не накатывал Sleeping Owl. Никаких ведь данных в бд не заносит при установке?
Anonymous
Есть таблица с записями и комментариями. В комментах есть post_id
foreach ($comments as $i){ $comment = \DB::table("comments")->where('id', '=', $i->post_id)->get(); }
Alexander
Вечер добрый, никак не соображу: Есть таблицы checklists: - id checklist_items: - id - checklist_id checklist_results: - id - item_id - date Модели: https://pastebin.com/nGPpiJ1S Как мне получить для пользователя, итемы с результатом за указанную дату? Что-то вроде этого: $yesterday_items = Auth::user()->checklists() ->with('results') ->where('date', Carbon::yesterday()->toDateString()) ->get();
Dmitry
foreach ($comments as $i){ $comment = \DB::table("comments")->where('id', '=', $i->post_id)->get(); }
воу воу воу полехче. Тут все таки люди сидят стремящиеся к ооп и чистому коду ;)
Anonymous
))
Anonymous
Самый простой вариант :D
Dmitry
Самый простой вариант :D
ммм... нет :) Post::with('coments')->get()
Anonymous
Ну лан)
Anonymous
Для человека, не читавшего доки*
Anonymous
Я просто с таким кодом сейчас работаю
Anonymous
Чел не смог сделать лэйаут
Anonymous
И тут 10 представлений
Dmitry
а пагинацию?)
для чего, для коментов? $post->comments()->paginate(15)->get();
Alexander
whereHas кури
Похоже что вроде все ок, спасибо)
Дмитро
Кто использовал prettus/l5-repository? зачем он генерирует свой валидатор и одновременно форм реквест для валидации?
Дмитро
а какой сейчас новый и модный?
Дмитро
andersao released this 3 days ago вроде обновляется
Dmitry
Дмитро
именнованые выборки, кеширование
Dmitry
именнованые выборки, кеширование
в смысле именновынные?
Dmitry
вообще концепция репозиториев фигово ложится на AR, потмучто он сам репозиторий
Дмитро
пишешь метод типа $repository->getAllWithSomething() например и у тебя не разрастается ни класс модели, ни класс в котором надо выборку вызвать
Дмитро
сингл респонсибилити, все дела
Дмитро
плюс там еще критерии и скоупы удобно добавлять
Дмитро
да да
Дмитро
но у тебя не было никогда, что модель разростается до сотен строк?
Дмитро
ну так нафига оно надо)
Niko
но у тебя не было никогда, что модель разростается до сотен строк?
делать надо на другие объекты, чтоб не париться с таким
Dmitry
я ничего против репозиториев не имею, не подумай )
Дмитро
так я и спрашиваю - какой сейчас пакет модный?
Дмитро
самому писать как-то взападло
Dmitry
самому писать как-то взападло
ну а что тебе там писать то? опиши интерфейс которой тебе от этого репозитория нужен и реализуй его
Дмитро
Мне бы кеширование пригодилось
Dmitry
ну так кешируй :) создай интерфейс своего репозитория, потом сам репозиторий, а потом декоратор для кеширования
Дмитро