
BekzoD
28.07.2018
16:50:32

russik
28.07.2018
16:54:55
Не ругайтесь

Шерали
28.07.2018
17:52:03
Все привет. Подскажите по сервис-провайдерам. Например, я пишу свой класс с нужным мне функционалом. Правильно ли я понимаю, что в Laravel хорошей практикой считается свои классы обрамлять в сервис правайдеры? Ну, а потом, где это необходимо инжектить.
Неправильно выразился. Точнее не обрамлять, а создавать сервис провайдер и связывать его со своим классом

Google

russik
28.07.2018
17:54:56
config/app.php

Denis
28.07.2018
17:55:19
Нет. Если только для этого то не надо. Тут хватит autoload

Шерали
28.07.2018
18:03:29
То есть, если я пишу свои классы, то просто можно создать отдельную папочку и там их хранить. В самих файлах указывать нэймспэйс, и юзать их где нужно. Это нормально в контектсе Laravel?

russik
28.07.2018
18:16:19
Да
Отдельная папка не Web контроллеры, отдельная на api

Maksim (Ellrion)
28.07.2018
18:16:52

russik
28.07.2018
18:16:52
Как пример
Только в рутах будешь писать папка/имя контроллера
@функция

Maksim (Ellrion)
28.07.2018
18:18:27
Да и даже если тебе нужно это то есть апп сервис провайдер, так что отдельный может и не понадобится

Шерали
28.07.2018
18:21:42
Ок. Это понял. Но в каких случаях стоит прибегать к созданию сервис-провайдеров?

Евгений
28.07.2018
18:23:33
даже в доках есть примеры где пишут типа ну создайте свою папку и кладите туда файлы, то есть никаких артизан генераторов заранее на это нет. Например ViewComposer

Google

Maksim (Ellrion)
28.07.2018
18:24:26

Vadim
28.07.2018
18:39:00
Такой вопрос, в чем разница между этими двумя строчками:
$task = new \App\Task;
и
$task = new App\Task;

Subb98
28.07.2018
18:42:36
в наличии корневого неймспейса?
<?php
namespace Ebobo;
throw new \Exception("It's OK!");
throw new Exception("Fuck yourself!");

Anton
28.07.2018
18:59:12
Кто заметил что в ларакасте Джефри использовал абривиатуру nah для удаления всего и возврата в прежденее состояние в git (возврат в HEAD)? и вот на лараконе Тео Отвел используют команду в линухе (алиас) nah в гите для того же ???
кто ж их научил русскому нахер ?? :)))

russik
28.07.2018
19:00:45
Скоро в ларе будет команда - куда бля, она будет откатывать все миграции до базовых

Anton
28.07.2018
19:01:19
не можнт это просто чтто там на naHead? но тогда вопрос
что такое na )))

Андрей
28.07.2018
19:01:27
Тоже видел про nah

Anton
28.07.2018
19:01:42
https://laracasts.com/series/unlocking-badges-workshop/episodes/6
Блин, хорошая штука ) https://community.algolia.com/places/

[Anonymous]
28.07.2018
19:28:42

Anton
28.07.2018
19:29:32
1000 в день бесплатно
запросов
https://community.algolia.com/places/pricing.html
там если зарегился 100,000 requests/ month бесплатно

[Anonymous]
28.07.2018
19:31:24
это называется блять платно!
у тебя посещаемость на проектах какая?
есть и бесплатные сервисы и такое решение достаточно просто сделать на своем сервере.. Так что смысла нет

Google

Andrey
28.07.2018
20:46:07

Илья
28.07.2018
21:12:32

Andrey
28.07.2018
22:23:46


Denis
28.07.2018
23:07:04
Проверю-ка и я силу вселенского разума :)
Я использую некую админку (laravel-admin от encore), которая в частности строит список строк по модели (допустим отражение таблицы "wallets", неких кошельков.
Также есть модель "history" с историей транзакций по всем кошелькам.
И вот понадобилось в таблице с кошельками видеть и сортировать кошельки по суммам входящих транзакций. Нужно сказать, что админка несколько топорная, максимум что можно сделать — модифицировать запрос к БД в контроллере, в котором в RAW запросе вставить серию джойнов, в результате чего будут выбраны аггрегаты, например те же суммы входящих транзакций.
По большому счёту, админка не умеет адекватно работать с отношениями, в ней можно обращаться к отношению в конкретной ячейке, но количество запросов увеличивается равноценно на количество строк. Не кушает она и обёртки "with()".
То, что я сделал — работает, модифицированный запрос прекрасно кушается, по его результатам, в том числе по "виртуальным" аггрегатам работает сортировка и т.п. НО: это нарушает одну из основных парадигм MVC (толстые модели, тонкие контроллеры). Да и в целом напрашивается перенос запроса в модель.
Внимание вопрос: Можно ли в модели Eloquent (а админка принимает только Eloquent) поменять запрос так, чтобы в нём выбирались и серии аггрегатов из разных таблиц. Или нет?


Liv
29.07.2018
05:18:56
Проверю-ка и я силу вселенского разума :)
Я использую некую админку (laravel-admin от encore), которая в частности строит список строк по модели (допустим отражение таблицы "wallets", неких кошельков.
Также есть модель "history" с историей транзакций по всем кошелькам.
И вот понадобилось в таблице с кошельками видеть и сортировать кошельки по суммам входящих транзакций. Нужно сказать, что админка несколько топорная, максимум что можно сделать — модифицировать запрос к БД в контроллере, в котором в RAW запросе вставить серию джойнов, в результате чего будут выбраны аггрегаты, например те же суммы входящих транзакций.
По большому счёту, админка не умеет адекватно работать с отношениями, в ней можно обращаться к отношению в конкретной ячейке, но количество запросов увеличивается равноценно на количество строк. Не кушает она и обёртки "with()".
То, что я сделал — работает, модифицированный запрос прекрасно кушается, по его результатам, в том числе по "виртуальным" аггрегатам работает сортировка и т.п. НО: это нарушает одну из основных парадигм MVC (толстые модели, тонкие контроллеры). Да и в целом напрашивается перенос запроса в модель.
Внимание вопрос: Можно ли в модели Eloquent (а админка принимает только Eloquent) поменять запрос так, чтобы в нём выбирались и серии аггрегатов из разных таблиц. Или нет?
А почему ты выбрал именно эту админку? Взял бы voyager - она умеет со связями работать


Anton
29.07.2018
07:05:21
А ты только на чтение достаешь данные? Если да - используй view ?

Nioray
29.07.2018
10:41:50
вот у менят методы в контроллере. и там я делаю запросы на то что мне нужно. мне по правильному их выносить в модель? http://prntscr.com/kcd4k7

Andrey
29.07.2018
10:58:15

Nioray
29.07.2018
10:59:16

Евгений
29.07.2018
11:01:03
теперь слышал
https://laravel.com/docs/5.6/eloquent-relationships

Andrey
29.07.2018
11:01:49
нет
Я там коммент обновил: https://t.me/laravel_pro/165246

Nioray
29.07.2018
11:03:10
Так стоп. У меня прописаны отношения везде.
Я ж спрашивал это нормально запросы в контроллере держать или мне их в метод модели вынести. Или еще куда то?

Andrey
29.07.2018
11:03:51
Контроллер должен только контролировать запрос, а не выполнять его. Работу с запросами выносят либо в репозитории, либо в сервисы.

Nioray
29.07.2018
11:04:50

Andrey
29.07.2018
11:05:02
Юзать select в твоей ситуации, имхо, дичь.

Nioray
29.07.2018
11:05:35

Andrey
29.07.2018
11:05:55
спасиб
Создают папки app/Repositories либо app/Services и в них кладут логику.

Google

Andrey
29.07.2018
11:06:18
почему?
Потому что у тебя есть eloquent и релейшены, а ты суешь в них костыли.
Код, который ты написал, должен выглядеть так: https://t.me/laravel_pro/165246

Nioray
29.07.2018
11:11:27
А нормально то что я получаю еще сверху кучу данных, которые мне по итогу не нужны? Ну я для этого селект и вставлял. Ну тоесть мне от теста нужна длительность и имя. а придет еще куча его опций. это норм?

Andrey
29.07.2018
11:11:37
И мой тебе совет: пользуйся переносом строк при написании столь длинных вызовов. Как ты вообще в одну строку код ещё писать не начал? Читать же сложно...

Nioray
29.07.2018
11:12:13

Andrey
29.07.2018
11:14:44
$test = Test::whereSlug($slug)
->with('questions:id,foo,bar', questions.answer:foo,bar')
->firstOrFail(['id, 'duration', 'name', 'slug']);
return view('tests', compact('test'));

Nioray
29.07.2018
11:21:02

Admin
ERROR: S client not available

Andrey
29.07.2018
11:37:16

Сергей
29.07.2018
11:57:23
Ребята, добрый день. Вопрос по валидации. Можно ли валидировать пришедший с формы идентификтор не через имя таблицы ('user_id' => 'exists:users,id') а через модель?

Дмитрий
29.07.2018
12:01:48

Сергей
29.07.2018
12:03:47
Через таблицу или через модель

russik
29.07.2018
12:04:46
Зачем тебе через модель?

Дмитрий
29.07.2018
12:04:50
Я не знаю что ты подразумеваешь под «через модель»

russik
29.07.2018
12:05:32
+

Сергей
29.07.2018
12:07:19

Дмитрий
29.07.2018
12:09:10
Зачем

Andrey
29.07.2018
12:09:28

Google

Alexander
29.07.2018
13:02:03
Друзья, кто сталкивался с такой проблемой:
Есть приложение, API на данный момент разрабатывать смысла нет, монолит на ларе.
Сейчас потихоньку фронтенд переписываю на vue, в итоге получается, что некоторые данные я должен подгружать через ajax'ы.
Как поступать в данных случаях? Т.е. должны быть отдельно маршруты под ajax'ы? Я сейчас делаю костыльно, т.е. так:
Route::group(['prefix' => '/ajax'], function(){
Route::get('/order/all', 'OrderController@getDataViaAjax')->name('ajax.order.all');
Route::get('/client/getbyphone', 'ClientController@getClientByPhone')->name('ajax.client.getbyphone');
Route::get('/client_sources/all', 'ClientSourceController@getAllViaAjax')->name('ajax.client_sources.all');
});
Но чувствую, что скоро это станет очень неубодным и убогим способом, по мере расширения


Roma
29.07.2018
13:11:54
Ребят, нужна помошь, взял таску, сделал, на сервере локально все работает, обновили проект на 000webhosting, там обычный запрос с js на php через xmlHttpReqvest, выдает внутриняя ошибка сервера 500

Упрямый
29.07.2018
13:20:29
пацаны, а где-нибудь можно почитать/посмотреть как всё это работает в ларавел, от public/index.php до самого конца, вывода response?

Артём
29.07.2018
13:22:10

Упрямый
29.07.2018
13:22:47

Артём
29.07.2018
13:23:00
Смотри сорцы

Упрямый
29.07.2018
13:24:08
сложно)

Nikitcat
29.07.2018
13:32:46
Кто-то OpenServer'oм пользуется? Нужен же .htaccess в доменной папке?
чтобы на паблик направлял

Azer
29.07.2018
13:41:42
использую этот пакет https://github.com/dimsav/laravel-translatable
как мне выводить данные только в одном языке
точнее я хочу это все черех api передать
а там со всеми языками передается
хочу выбрать зависимо от запроса взять один язык

Andrey
29.07.2018
13:54:04

F01134H
29.07.2018
14:02:01
Country::whereTranslation('name', 'Greece')->first();
Country::whereTranslation('name', 'Greece', 'en')->first();
локаль вон передаешь и все