#5 Создаем Seeds для таблиц

Видеокурс Laravel: создание ToDo List

Создаем тестовых записей в таблицы


В Laravel существует мехинизм для автосоздания тестовых записей в таблицы.
Для того чтобы заполнить таблицу пользователей тестовыми данными создадим файл
\app\database\seeds\UserTableSeeds.php
С содержимым:

class UsersTableSeeder extends Seeder
{
	public function run(){
		DB::table('users')->delete();
		
		$users = array(
			array(
				'name' => 'UserName',
				'password' => Hash::make('123123'),
				'email' => 'userEmail@ya.ru'
			)
		);
		
		DB::table('users')->insert($users);
		
	}
}

Для того чтобы заполнить таблицу задач тестовыми данными создадим файл
\app\database\seeds\ItemsTableSeeds.php
С содержимым:
public function run(){
	DB::table('items')->delete();
	
	$items = array(
		array(
			'user_id' => '1',
			'name' => 'задача №1',
			'done' => false
		),
		array(
			'user_id' => '1',
			'name' => 'задача №2',
			'done' => true
		)
	);
	
	DB::table('items')->insert($items);
}
	

Итак, сиды у нас готовы и теперь требуется запустить их.
Но сначала надо указать Ларавелу какие сиды надо запускать.
Так как механизм запускается одной командой.
Открываем файл app\database\DatabaseSeeder.php
И указываем свежесозданные сиды.

class DatabaseSeeder extends Seeder {

	/**
	 * Run the database seeds.
	 *
	 * @return void
	 */
	public function run()
	{
		Eloquent::unguard();

		$this->call('UsersTableSeeder');
		$this->call('ItemsTableSeeder');
	}

}

Запускаем создание тестовых записей:

php artisan db:seed

Добавить отзыв (пожелание, комментарий)

Максим, Санкт-Петербург
Есть две опечатки: \app\database\seeds\UserTableSeeds.php \app\database\seeds\ItemsTableSeeds.php Правильно не "Seeds" а "Seeder": \app\database\seeds\UserTableSeeder.php \app\database\seeds\ItemsTableSeeder.php
Alexander
Спасибо!
Alexander

Дмитрий, подскажите плз. когда Вы юзера добавляете, Вы прописанную в фреймворке процедуру хеширования пароля используете.
там бывает какая-то настройка?
Добавить соль или количество хеширований, например. и где эта функция в Ларавеле живет, посмотреть на неё бы.

Ответ:
Собственно вот тут и живет:
\vendor\laravel\framework\src\Illuminate\Hashing\BcryptHasher.php
И используется функция password_hash
У меня есть видео об этой функции - Хеширование паролей в PHP