Bekbolot
Bekbolot
User::find($this->author);
а это уже работает но не хотел далать так, помоему это не правильно
Maksim (Ellrion)
так а как ты релейшен назвал? так же как и атребут?
Maksim (Ellrion)
наверное так и есть вот и не работает
Bekbolot
так а как ты релейшен назвал? так же как и атребут?
<?php
use \Illuminate\Database\Eloquent\Model as Model;
class Blog extends Model {
public $timestamps = false;
protected $fillable = [
'title',
'description',
'content',
'time',
'image',
'author'
];
public function getImageUrlAttribute(){
if (!_empty($this->image)) return "/uploads/" . $this->image;
else return DEFAULT_NOIMAGE_URL;
}
public function author(){
return $this->belongsTo(User::class, 'author', 'id');
}
}
вот весь класс
Maksim (Ellrion)
Bekbolot
Maksim (Ellrion)
не должны совпадать метод релейшена и имя атребута просто
Bekbolot
там на оф сайте написал же hasOne, belongsTo второй аргумент foreing_key, третий local_key
Maksim (Ellrion)
не должны совпадать метод релейшена и имя атребута просто
Сргей
Поле author переименуй в author_id
Сргей
И в релейшеноюе тоже
Vlad
Подскажите пожалуйста.
Есть таблица с правами доступа пользователя к дверям. В одном из полей хранится массив айдишников (JSON) тех дверей которые ему можно просматривать. Есть ли встроенный метод в LARAVEL который при обновление поля, добавит только те id, которых нет. Что-то вроде sync() для многие-ко-многим.
Bekbolot
Maksim (Ellrion)
Bekbolot
но это не так хорошо😐
Maksim (Ellrion)
Maksim (Ellrion)
не хорошо у тебя было названо до этого)
Филипп
День добрый, коллеги!
Мы все ещё ищем джуниора/мидл фулстек разработчика.
Laravel+MySQL.
С уклоном на ботов, работы с внешними API и различные автоматизации.
Пишите @upanddown
Описание, что бы не захламлять группу
https://goo.gl/forms/ckaz2yU0wZuA4yra2
Maksim (Ellrion)
Ахмедов
помогите. У каждого Exercise по 2-3 solutions. Мне надо взять каждому Exercise по 1ному которая последняя добавленная. Вопрос состоит в том как написать where условия в этом запросе для solutions
Ахмедов
который вызываеться с with
Александр
Никак, нужно какое-то поле или raw запросом
Александр
Посмотри, какие запросы при жадной загрузке выполняются - все станет понятно
Igor
Народ, подскажите пожалуйста. В модели определил функцию, которая использует другую функцию определённую в этой-же модели. Почему при вызове 1-й функции вылазит ошибка что 2-я функция не существует?
Maksim (Ellrion)
помогите. У каждого Exercise по 2-3 solutions. Мне надо взять каждому Exercise по 1ному которая последняя добавленная. Вопрос состоит в том как написать where условия в этом запросе для solutions
я когда то делал вот такой скоуп
/**
* Находит последнюю запись для значений определенного поля.
*
* Т.е. с групировкой по указанному полю.
*
* @param Builder|QueryBuilder $query
* @param string $column
* @param array $values
* @param string $date
* @return Builder|QueryBuilder
*/
public function scopeLastFor($query, $column, array $values = [], $date = 'created_at', $mergeWheres = true)
{
if (!empty($values)) {
$query->whereIn($column, $values);
}
$sub_query = static::select("{$column} AS __{$column}")->selectRaw("MAX({$date}) as __{$date}")->groupBy($column);
if ($mergeWheres) {
$sub_query->mergeWheres($query->getQuery()->wheres, $query->getQuery()->getBindings());
$query->getQuery()->mergeBindings($sub_query->getQuery());
}
$query->join(new Expression("({$sub_query->toSql()}) as last_for_t"), function ($join) use ($column, $date) {
$join->on("last_for_t.__{$column}", '=', $column)
->on("last_for_t.__{$date}", '=', $date);
});
return $query;
}
для новой ларе я правда не тестил. попробуй добавить его в базовую модель и ->with(['solutions' => function($q) { $q->latsFor('excersise_id'); })])
Maksim (Ellrion)
Maksim (Ellrion)
Nikita 🔥
У меня такая проблема, я редактирую vue.js файлы, а они не обновляются после перезагрузки страницы. Сайт стоит на openserver использую laravel
Bekbolot
Nik
Bekbolot
Nik
It's pity
Igor
Maksim (Ellrion)
ууу всё плохо. совсем новечек?
Igor
Да)
Igor
Ну, несовсем, но да
Maksim (Ellrion)
ну как фикс это должно быть echo self::FunctionName2()
но надо почитать азы
Igor
Igor
Функция-то статическая
Maksim (Ellrion)
Anton
А потом человек откроет для себя позднее статичиское связывание и узнает про static::FunctionName2()
Nikita 🔥
Ребята, как писать фронтенд для сайта, который на openserver стоит?
Maksim (Ellrion)
ну он много для себя всего еще откроет)
Nikita 🔥
я редактирую файлы, а они не обновляются
Maksim (Ellrion)
Igor
Anton
И ты сделаешь в ней FunctionName2()
Nikita 🔥
кэш?
проблема точно не с кешем. Чистил его, отлючил в DevTools и все перезагрузки делаю с CTRL + F5
Anton
но вызовешь Mdl2::FunctionName1() - как ты думаешь какая функция у тебя выховется если в FunctionName1 будет self::
Anton
FunctionName1 есть только в Mdl1
Anton
Mdl
SarcasmIO
как можно такую простую вещь как late static bindings объяснять так сложно
Anton
Критикуешь - предлагай
Igor
Т.е. если вызываемая функция вызвана в дочернем классе а определена в родительском при этом вложенная функция определена и там и там, то вызовется родительская вложенная функция - при self::
Anton
self:: вызовет функцию из этого класса или от родителя
Anton
static - будет всех наследников проверять
Igor
Понял, спасибо
Anton
SarcasmIO
мне лень)
SarcasmIO
вместо того что бы объяснять статическое связывание
SarcasmIO
лучше бы сказал никогда не юзайте наследования и не будет боли
SarcasmIO
)
Anton
Наследование можно очень аккуратно и красиво использовать 🙂
Anton
Постарайтесь не использоваться позднее статическое связывание - это не плохой совет
Dmitriy
Nik
Anton
Вот из за таких вот поведений
Anton
Так то все что угнодно можно использовать и goto тоже!!! Просто пока не научился - лучше избегать
Nik
эм) это несколько противоречит тому что я процитировал, или же что-то вырвано из контекста
SarcasmIO
почему?
так или иначе, ты как разумный человек, предполагаешь что будет, если ты на скорости 250+ влетишь в столб, вот только пользоваться ты этим вряд ли захочешь
SarcasmIO
так же и с late static bindings
Nik
статика впринципе зло, но тут нужно избегать не связывания, а статики впринципе
Nik
зы. бумер на 250 срезает столб под корень :)