Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
$user = Phone::find(82);
когда я пишу такой код дебаггер показывает запрос SQL select * from `users` where `users`.`id` = '82' limit 1
Как записать код чтобы запрос содержал имена колонок, которые мне нужны name,sername ?
select name,sername from `users` where `users`.`id` = '82' limit 1
$user = Phone::find(82);
когда я пишу такой код дебаггер показывает запрос SQL select * from `users` where `users`.`id` = '82' limit 1Как записать код чтобы запрос содержал имена колонок, которые мне нужны name,sername ?
select name,sername from `users` where `users`.`id` = '82' limit 1
Я понял как это сделать для простого запроса, передать array в find
А вот как передать нужные мне колонки в OneToMany, там тоже по умолчанию выбираются все столбцы (*) , а как задать только некоторые?
$object->related()->select('related.column_one', 'related.column_two')->get()
Как-то так, если память не изменяет...
Не в сети
$object->related()->select('related.column_one', 'related.column_two')->get()
Как-то так, если память не изменяет...
Вопрос ставился насчет Eloquent, а это как я понимаю Query Builder
Использование Eloquent не накладывает на Вас ограничений в использовании Query Builder'а.
Не в сети
Использование Eloquent не накладывает на Вас ограничений в использовании Query Builder'а.
Это понятно, можно и чистый PHP код в SQL запросом вставить! Но вопрос все же про Eloquent !!!
Не в сети
}%%%(php)
Phone->whereId(123)->firstOrFail(array('name', 'sername'));
%%p.s: в имени ошибка - s**__u__**rname
спасибо то что нужно!
ЗЫ путаюсь я в этих схемах, привык юзать просто SQL запросы и их резалт!
}%%%(php)
Phone->whereId(123)->firstOrFail(array('name', 'sername'));
%%p.s: в имени ошибка - s**__u__**rname
Хотя это немного не то что я спрашивал я имел ввиду в запросе OneToMany
select * from `users` where `users`.`id` = '82' limit 1
select * from `comments` where `comments`.`user_id` = '82'
если так записать то колонки будут в 1-м запросе, а мне нужно например колонки во втором запросе?
Пример
$comments = User::whereId(82)->firstOrFail(array('id','name', 'email'));
foreach ($comments->comment as $key) {
print $key->mycomment."<br>";
}
дает 2 запроса
select `id`, `name`, `email` from `users` where `id` = '82' limit 1
select * from `comments` where `comments`.`user_id` = '82'
User::find(1)->comments()->get(['id', 'text'])
User::find(1)->comments()->select('id', 'text')->get()
Это понятно, можно и чистый PHP код в SQL запросом вставить! Но вопрос все же про Eloquent !!!
Eloquent в построениях запросов наследуют query builder, а следовательно, (почти) всё, что может QB может и Eloquent. Это упрощает использование, так как по сути, Eloquent, будучи ORM движком, решает вопрос использования записей таблиц как объектов, а колонок таблиц - как свойств этих объектов, а так же вопрос отношений между объектами. В остальном (в особенности, при построении запросов) - это тот же QB, только взгляд со стороны.
Вот Вам выдержка из мануала:
Note: All methods available on the query builder are also available when querying Eloquent models.
Не думайте, что Eloquent - это серебрянная пуля. Это просто дополнительный слой абстракции, помогающий Вам быстрее писать код. Когда Вы столкнётесь с построением крупного высоконагруженного решения, вероятнее всго (при должной архитектуре), Вы будете уходить от ORM...
Изменено SMGladkovskiy (30.12.2014 17:41:12)
Не в сети
$model=Phone::where('id','=','82')->take(1)->get();
return .........
И далее
$model->name;
$model->title;
$model->id;
Изменено Afatar (31.12.2014 05:01:33)
Не в сети
Страницы 1