Laravel 5. Добавить запись в базу данных

Данный материал предоставлен сайтом PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Как добавить запись в базу данных
Laravel 5. Добавить запись в базу данных


Требуется произвести запись в таблицу базы данных.

Вариант 1.


Будем считать, что контроллер уже создан и нам необходимо произвести запись данных, содержащихся в массиве $data.
Модель принимает название Projects.

Содержимое контроллера:

$data = array(
    'title' => 'New Project',
    'description' => "This is description",
    'url' => "http://pacificsky.ru",
    'author' => '1',
    'create_date' => date("d,m,y"),
    'update_date' => date("d,m,y")
);

$projects = new Projects();
$projects->create_project($data);



$projects = new Projects();
$projects->create_project($data);
Данные строки кода создают экземпляр модели Projects
И вызывают метод create_project($data), где передают содержимое массива $data


Содержимое метода create_project модели Projects:

public function create_project($data)
{
    $title = $data['title'];
    $description = $data['description'];
    $url = $data['url'];
    $author = $data['author'];
    $create_date = $data['create_date'];
    $update_date = $data['update_date'];

    return DB::insert('insert into st_projects (title, description, url, author, create_date, update_date) values (?, ?, ?, ?, ?, ?)', [$title, $description, $url, $author, $create_date, $update_date]);
}


Присвоение переменным одноименные значения массива:

$title = $data['title'];
$description = $data['description'];
$url = $data['url'];
$author = $data['author'];
$create_date = $data['create_date'];
$update_date = $data['update_date'];


Сам запрос в базу данных на создание новой записи:
return DB::insert('insert into st_projects (title, description, url, author, create_date, update_date) values (?, ?, ?, ?, ?, ?)', [$title, $description, $url, $author, $create_date, $update_date]);


Вариант 2.


Будем считать, что контроллер уже создан и нам необходимо произвести запись данных, содержащихся в массиве $data.
Модель принимает название Projects.

Содержимое контроллера:

        $data = array(
            'title' => 'New Project2',
            'description' => "This is description2",
            'url' => "http://pacificsky.ru",
            'author' => '2',
        );

        $projects = new Projects();
        $projects->create($data);



$projects = new Projects();
$projects->create($data);
Данные строки кода создают экземпляр модели Projects
С помощью create, производим запись содержимого массива $data в базу данных.


Содержимое метода create_project модели Projects:
class Projects extends Model

{
    protected $fillable = [
        'title', 'description', 'url', 'author',
    ];

    protected $guarded = ['id'];
}



Свойство $fillable указывает, какие поля должны быть доступны для заполнения.
Свойство $guarded указывает, какие поля не доступны для заполнения.


Приведенные варианты позволяют произвести запись в базу данных.
Какой вариант лучше? Пожалуй решать только вам.
Лично мне второй вариант нравится больше.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.