Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Region extends Model {
public function setSlugAttribute($value)
{
$this->attributes['slug'] = \Slug::make($value);
}
\App\Models\Region::create([
'name' => 'Автономная Республика Крым', 'slug' => 'Автономная Республика Крым',
'name' => 'Винницкая область', 'slug' => 'Винницкая область',
'name' => 'Волынская область', 'slug' => 'Волынская область',
'name' => 'Днепропетровская область', 'slug' => 'Днепропетровская область',
'name' => 'Донецкая область', 'slug' => 'Донецкая область',
'name' => 'Житомирская область', 'slug' => 'Житомирская область',
'name' => 'Закарпатская область', 'slug' => 'Закарпатская область',
'name' => 'Запорожская область', 'slug' => 'Запорожская область',
'name' => 'Ивано-Франковская область', 'slug' => 'Ивано-Франковская область',
'name' => 'Киев', 'slug' => 'Киев',
'name' => 'Киевская область', 'slug' => 'Киевская область',
'name' => 'Кировоградская область', 'slug' => 'Кировоградская область',
'name' => 'Луганская область', 'slug' => 'Луганская область',
'name' => 'Львовская область', 'slug' => 'Львовская область',
'name' => 'Николаевская область', 'slug' => 'Николаевская область',
'name' => 'Одесская область', 'slug' => 'Одесская область',
'name' => 'Полтавская область', 'slug' => 'Полтавская область',
'name' => 'Ровненская область', 'slug' => 'Ровненская область',
'name' => 'Севастополь', 'slug' => 'Севастополь',
'name' => 'Сумская область', 'slug' => 'Сумская область',
'name' => 'Тернопольская область', 'slug' => 'Тернопольская область',
'name' => 'Харьковская область', 'slug' => 'Харьковская область',
'name' => 'Херсонская область', 'slug' => 'Херсонская область',
'name' => 'Хмельницкая область', 'slug' => 'Хмельницкая область',
'name' => 'Черкасская область', 'slug' => 'Черкасская область',
'name' => 'Черниговская область', 'slug' => 'Черниговская область',
'name' => 'Черновицкая область', 'slug' => 'Черновицкая область'
]);
}
Не в сети
Я бы так попробовал:
вместо \Slug - в начале: use App\Models\Slug, потом обращаемся: = Slug::make
\App\Models\Region::create - заменить на self::create
По остальному не понятна структура БД.
Не в сети
Я бы так попробовал:
вместо \Slug - в начале: use App\Models\Slug, потом обращаемся: = Slug::make\App\Models\Region::create - заменить на self::create
По остальному не понятна структура БД.
Мне города в базу добавлять через сидер или через модель?
Не в сети
Мне города в базу добавлять через сидер или через модель?
теперь представь, что по каким-то нуждам ты запускаешь сидер 100500 раз на дню.
что произойдёт?
Не в сети
однозначно через сидер. структура - в миграциях, начальный набор данных - в сидерах, а модель отвечает за выборки и представление данных.
Не в сети
Ага, спасибо большое!
Не в сети
А еще такой вопросик, я хочу реализовать ЧПУ, но в базе все будет в кирилице, мне нужно к Laravel подключать какое-то дополнение или можно обойтись стандартными средствами?
Не в сети
Не в сети
А я хотел через Laravel 5 Cyrillic Slug
Не в сети
Не в сети
А slug лучше сразу в сидере прописывать или через модель генерировать?
Не в сети
лучше — генерировать при сохранении, проверять на дубликаты, хранить в базе. поле проиндексировать. выбирать простым PHPwhere('slug', '=', $slug)
. использовать route bindings.
Route::get('blog/{post}', [ 'uses' => 'BlogController@show', 'as' => 'blog.show' ]);
Route::bind('post', function ($slug)
{
if ($post = App\Post::whereSlug($slug)->first()) {
return $post;
}
throw new Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
});
/**
* @param Post $post
* @return Response
*/
public function show($post)
{
/* ... */
}
Изменено constb (06.07.2015 07:41:52)
Не в сети
А если в разных областях страны есть одинаковые села? Может ли в базе быть два одинаковых населенных пункта?
Не в сети
"одинаковость" в базе ограничивают только две вещи - primary key, который скорее всего и так автоинкрементальный айдишник, и unique index - всё остальное может дублироваться как хочешь. это уже твои проблемы как различать эти записи. если у населённого пункта есть идентификатор области то пара область-нас.пункт уже будет уникальна. если много выборок по области и по область+пункт, можно добавить unique index на два поля область+пункт - тогда на уникальность будут проверяться пары полей.
Не в сети
}%формируй url с помощью cocur/slugify и храни его в базе. сразу и проверишь на уникальность, сразу и по полю будешь находить запись, соответствующую маршруту. не забудь добавить индекс на поле.
А как добавить индекс на поле? Через миграцию $table->string('name')->unique(); или как-то по-другому?
Не в сети
Страницы 1