Anonymous
😂
Anonymous
слышь малышь
Евгений
ты свой сервис когда покажешь уже
Anonymous
в меру потребляй гашишь
Anonymous
хех
Anonymous
Мой сервис тебя не хочет :(
Anonymous
Желание помогать дело лично каждого
Anonymous
Когда лечение закончу
Anonymous
тогда и покажу
Евгений
ой всё
Евгений
отмазы пошли
Евгений
от вмеру употреблённого гашиша лечение?
Anonymous
Нет
Юрий
А чем ларавел плох Юрий?
у тебя тривиальное задание на построение запроса к базе корректного с парой джойнов. с моделями лары ты его себе усложнил в разы. хз. учить новое - отлично. но если тяжело - если горит я бы уже давно плюнул и попробовал потом как время разобраться будет на более простых примерах
Anonymous
Анорексия с дипрессией
Евгений
на новый год оливье надо было побольше сожрать
Arthur
$matchdays = DB::table('matches')
->join('teams as team1', 'matches.team1_id', '=', 'team1.id')
->join('teams as team2', 'matches.team2_id', '=', 'team2.id')
->select('team1.name as team1', 'team2.name as team2')
->get();
$matchdays = DB::table('matches')
->join('teams as team1', 'matches.team1_id', '=', 'team1.id')
->join('teams as team2', 'matches.team2_id', '=', 'team2.id')
->select('team1.name as teamOneName', 'team2.name as teamTwoName')
->get();
Евгений
блин, как бы мне к файловому менеджеру прикрепить автоматическое изменение размеров и загрузка разныз вариантов размеров на сервак...
Anonymous
->select('team1.name as team1', 'team2.name as team2') можно ли вместо параметров указывать еще доп запросы типа
... as и запрос сюда?
Anonymous
можна
Anonymous
DB::raw
Anonymous
Сырой запрос SQL значит можно. Ща попробую
Anonymous
напиши что ты хочешь
Anonymous
нормальным языком
Anonymous
Артур а чем ваш запрос отличается от моего?
Arthur
->select('team1.name as teamOneName', 'team2.name as teamTwoName')
Anonymous
описание таблиц и что ты хочешь на выходе
Anonymous
$matchdays = \App\Matchday::find(1)->matches;Выдаёт коллекцию туров и матчей связанных с этим туром, но вот загвоздка в таблице матчей хранится код команды, а нужно название которое лежит в таблице команды. Вопрос как можно получить коллекцию туров->матчей где вместо id будет лежать название команды?
Anonymous
Anonymous
Anonymous
$matchdays = DB::table('matches')
->join('teams as team1', 'matches.team1_id', '=', 'team1.id')
->join('teams as team2', 'matches.team2_id', '=', 'team2.id')
->select('team1.name as team1', 'team2.name as team2')
->get();
Anonymous
Этот запрос выдает список всех матчей, но как их разделить по турам, чтобы можно было далее в цикле вывести?
Anonymous
На выходе хочу получить коллекцию связаный туров и матчей только чтобы вместо кода команды в коллекции матчей были названия команд
Arthur
Arthur
тут уже конфликт как мне кажется
Anonymous
Я имел в виду что на выходе ничего не меняется
Юрий
в телеграмме (десктопном) можно отвечать на свое же сообщение (конкретное), два раза кликнув, тогда цитирование будет более приятное чем форвард. но это так. а то второй раз эта портянка
Anonymous
Нет. Отрабатывает всё хорошо
Anonymous
Anonymous
Arthur
Anonymous
где были? непонятно
Есть модели ТУР, МАТЧИ в которых прописаны связи один ко многим. Я делаю запрос $matchdays = \App\Matchday::find(1)->matches; соответственно получаю на выходе коллекцию туров и связанных с ними коллекцию матчей. В матчах указаны коды команды team1_id и team2_id. Хотелось бы вместо них получить названия команд которые хранятся в таблице команды
Arthur
у тебя маленькое приложение, сделай просто в цикле
Anonymous
А цикл где писать в шаблоне?
Arthur
там где тебе нужно получить имя
Arthur
foreach ($matches as $match) {
$match->teamOne->name;
$match->teamTwo->name;
}
Arthur
грубо говоря
Arthur
в teamOne и teamTwo через hasOne
Anonymous
Ок. Тогда вот ещё вопрос что будет дешевле? Делать в цикле каждый раз запрос на получение имени команды или создать условие типа switch()?
Arthur
что?
Anonymous
Ну типа switch($team_id)
case 1:
case 2:
Arthur
не надо так делать
Anonymous
Понял. Значит через отношения. Ок. спасибо пошел писать дальше
Anonymous
Уже сделал
Anonymous
$matchdays = Matchday::with('matches')->get();Получил коллекцию
Anonymous
А далее в шаблоне
@foreach ($matchdays as $matchday)
<tr>
<td>{{ $matchday->number }} тур</td>
</tr>
@foreach ($matchday->matches as $match)
<tr>
<td>{{ $match->number }}</td>
<td>{{ $match->date }}</td>
<td>{{ App\Team::find($match->team1_id)->name }}</td>
<td>{{ $match->score1 }} : {{ $match->score2 }}</td>
<td>{{ App\Team::find($match->team2_id)->name }}</td>
</tr>
@endforeach
@endforeach
Anonymous
А как правильнее?
Anonymous
Ща попробую
Ильдар
Здравствуйте, посоветуйте книжку по php7, желательно чтобы простым языком написано)
Co(n)stantine👨🔬
@Tahtabaev уже знаешь php 5?
Ильдар
Не
Co(n)stantine👨🔬
Начни с него пока, а книги по семерке не сильно отличаюися
Co(n)stantine👨🔬
да и на английском в основном
Ильдар
Ок
Anonymous
Тоже посоветовал бы с 5 начать
johan_krs
С 4 хохохо
Dan
С 7 начинай, никого не слушай
Dan
И только на английском
Dan
На русском материалов нет
Юрий
с 7.1
Юрий
а лучше почитай драфты 7.2 и сразу с него
Ильдар
Я тут подумал, лучше 8 подожду, сразу с него)))
Anonymous
rei не получается. Ошибки
Anonymous
То на метод ругается, то на связь
Anonymous
Ща. В модели МАТЧ создал отношения.
public function teamFirst()
{
return $this->belongsTo(App\Team::class, 'id', 'team1_id');
}
public function teamSecond()
{
return $this->belongsTo(App\Team::class, 'id', 'team2_id');
}Верно?
Anonymous
Стопэ, а в модели Команда что писать? Какая связь там будет
Anonymous
?
Anonymous
BadMethodCallException in Macroable.php line 74:
Method with does not exist.
Anonymous
Builder {#180 ▼
#query: Builder {#179 ▶}
#model: Matchday {#173 ▶}
#eagerLoad: array:2 [▶]
#macros: []
#onDelete: null
#passthru: array:11 [▶]
#scopes: []
#removedScopes: []
}
Anonymous
#model: Matchday {#173 ▼
+timestamps: false
#connection: null
#table: null
#primaryKey: "id"
#keyType: "int"
#perPage: 15
+incrementing: true
#attributes: []
#original: []
#relations: []
#hidden: []
#visible: []
#appends: []
#fillable: []
#guarded: array:1 [▶]
#dates: []
#dateFormat: null
#casts: []
#touches: []
#observables: []
#with: []
#morphClass: null
+exists: false
+wasRecentlyCreated: false
}