Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
В нете нашел такую рекомендацию:
Model::unguard();
// User::create(['some_protected_attribute'=>'some value']);
Model::reguard();
Почему бы не использовать Policy?
В форме указываешь каждого инпута, например name="car".
Затем в экшене пишешь:
$data = request()->validate([
'car' => '' // это значит, что у валидации нет требований никаких к полю
]);
Далее получаешь данные $data['car'];
Можно без валидации:
$car = request('car');
В чем собственно затык? Поля не прописаны?(name=)??
Суть такая, что ты можешь расширить область поиска.
Например.
Product::where(function ($query) {
$query->where('color', 'red');
$query->where('size', '20);
})-get();
Можно рассмотреть примерно так:
Product::where(color - red И size - 20)->get();
Да можно без ретурн. Если есть вопросы пиши.
Привет, ищу всех желающих ларавел разработчиков для взаимопомощи, кто готов и любит делиться опытом и не прочь получить его.
Оставляйте свои контакты(скайп), я с вами свяжусь. Спасибо.
Добрый день, контакт только по телеграмму?
Здравствуйте. Перерыл интернет, не понимаю почему не работает коллбэк фабрики.
Есть три модели - пост, категория, тэг.
У поста есть два метода:
public function category()
{
return $this->belongsTo(Category::class);
}
public function tags()
{
return $this->belongsToMany(Tag::class);
}
В фабрике прописал это:
$factory->define(Post::class, function (Faker $faker) {
return [
'title' => $faker->title,
'author_id' => 3,
'category_id' => 3,
'description' => $faker->text,
'content' => $faker->text,
];
});
$factory->define(Category::class, function (Faker $faker) {
return [
'title' => $faker->title,
];
});
$factory->define(Tag::class, function (Faker $faker) {
return [
'title' => $faker->title,
];
});
В ране сида прописал это:
factory(Post::class, 10)->create()->each(function (Post $post) {
$post->category()->save(factory(App\Category::class)->make());
});
И тут вылезает ошибка, что у belongsTo нет метода save().
А в случае с тегами:
$post->tags()->save(factory(App\Tag::class)->make());
Всё прекрасно работает, там belongsToMany
Не понимаю, что делать.
Взял это пособие в интернете) В оф документации в фабрике что-то не вижу конкретностей и деталей на этот счет(
Может как-то с кэшированием связано или сессиями? Пробовали этот момент рассматривать?
Добрый день, если я правильно понял
У роутов есть возможность вложить переменную в запрос
blog/{id}, и передать id в BlogController@index, в экшне public function index($id){}
Либо там же вызвать функцию замыкания и передать туда $id.
В целом, я так понимаю, ваш вопрос можно оптимизировать до
Можно ли переменную {id} подставить в вызванный контролллер, например idController@index, верно? Попробуйте так поискать
Вообще, если явно не указать get запрос в роуте, а он есть, то он будет автоматически добавляться в урл.
В любом случае, можно добавить в роут ?page={id} и передать также id в контроллер.
Первый вопрос про маршрутизацию не совсем понятен, вернее его сложность) Обычная практика создавать модели, в ларавел есть инструмент, чтобы легко обойтись от сложных запросов, и вы можете все эти связи реализовать в модели. Зачем вам выгружать логику? Не совсем понятно:)
doctrine/dbal — раз написано в доке, значит нужна ) Другое дело что она возможно и без явного добавления уже в твоих зависимостях. Если заглянуть в composer.lock, можно обнаружить мноооого вторичных зависимостей.
Блэээн, как же я не догадался, хотя подозревал, что скорее всего так уже давно сделано) Спасибо за ответ!)
nailfor, artoodetoo
Извиняюсь, просто я еще и код не писал, а в документации читал, там написано про зависимость: doctrine/dbal
Поэтому я и спросил. Так она нужна или нет? Я уже попробовал и удалять и изменять, но она у меня стоит, и всё работает. Вот текст с документации:
Удаление столбцов
Для удаления столбца используйте метод dropColumn на построителе структур. Перед удалением столбцов из базы данных SQLite вам необходимо добавить зависимость doctrine/dbal в ваш файл composer.json и выполнить команду composer update для установки библиотеки:Schema::table('users', function (Blueprint $table) {
$table->dropColumn('votes');
});
Здравствуйте
Почитал документацию, если с добавлением столбцов я всё понял, то с удалением не совсем. Получается, мало создать миграцию с Schema::table, надо еще устанавливать некую библиотеку, которая реализует удаление столбцов? Как грамотно на практике реализовывать такую задачу? Спасибо большое!!!
Нет, не получается.
В таблицу связей можно накидать теги в любой момент после создания записи в постах.
Это можно сделать сразу, можно через любой промежуток времени после.
Всё теперь всё понял, спасибо большое!
Хм, получается, когда мы добавляем данные, надо также добавлять и в эту таблицу данные в тот же самый момент?
Таким образом создать одному посту несколько разных тегов будет невозможно.
Ааа то есть, благодаря такой таблице, можно будет уже несколько тегов назначить?
Где можно посмотреть примеры реальных таблиц, их архитектура? А-то я чем больше изучаю, тем больше понимаю. что вообще не шарю.
@JohnnyDoe, это не из-за Laravel, а происходит из особенностей реляционных баз данных. Многие-ко-многим в РСУБД делаются через таблицу-связку, иначе говоря, pivot. Ларавель только предоставляет доступ к БД. Если в базе должна быть таблица, значит должна быть и миграция чтобы её создать.
Совет: если в миграции для таблицы-связки ты объявишь уникальный составной индекс на пару полей (post_id, tag_id), то избежишь потенциальных проблем с дублированием записей.
Ого очень признателен за подробный ответ. Может есть где почитать об этом?
Получается схема, если я делаю таблицу пост и там создаю ключ tag_id, и потом во время добавления поста ставлю туда условие "вставать в поле tag_id, где tag_id = id(тут переменная айдишника тэга из таблицы tag)", так не пойдёт? Или это считается дурным тоном и непрактично?
Здравствуйте, я новичок. Многократно видел такую ситуацию. Например. Имеем блог. Создаем миграцию для поста(стандартную), затем миграцию для тэгов. И нужно еще создать миграцию связи типа "Пост-тег". Только я не понимаю, что именно мы решаем таким образом и чем это удобно? Если миграцию поста и тэга я понимаю, что к чему, тов миграции пост-тег, вообще не понимаю, что там происходит и зачем она нужна.
Спасибо большое за внимание!
Страницы 1