2016-06-08 4 views
-1

Я изучаю laravel 5 и это отношения с базами данных. Я могу найти массу информации о том, как работать с sqlite и mysql, но у меня возникают проблемы с пониманием того, какие миграции, как они связаны с базами данных и моей основной проблемой ...
Если у меня есть предварительно созданная база данных postgres с , скажем, 10 таблиц и их отношения уже работают и как я могу заставить Laravel взаимодействовать с ними?
К примеру, у меня есть Postgres схема таблица определяется следующим образом:Понимание миграции Laravel с PostgreSQL

CREATE TABLE "users" (
"id" integer NOT NULL DEFAULT nextval('users_seq'), 
"name" character varying(30) NOT NULL, 
"email" character varying(50) NOT NULL UNIQUE, 
"password" character varying(120) NOT NULL UNIQUE, 
CONSTRAINT users_pk PRIMARY KEY ("id") 
) WITH (
    OIDS=FALSE 
); 

Я уже знаю Laravel поставляется с общей миграцией для таблицы пользователей, но как именно я должен работать внутри Laravel подключения к моей БД? Кстати, имя моей базы данных будет dummy.
Могу ли я использовать что-то вроде класса миграции?
Но насколько я понимаю, миграции предназначены для создания/удаления таблиц/etc, правильно?
Или мне нужно создать контроллер для взаимодействия с db, как это?

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Requests; 

class PagesController extends Controller 
{ 
    public function index() 
    { 
     $users = DB::table('users')->get(); 
     return view('DBHandler',compact('users')); 
    } 
} 

И я полагаю, что это способ построения запросов, и способ красноречия совершенно другой.
Любая помощь будет оценена по достоинству.

ответ

0

Из блога laravelbooks.com, процитировать:

[...] Миграции являются Laravel способ помочь вам развить схему базы данных приложения (также известный как ее DDL), без необходимости удалять и повторно создавать базу данных каждый раз, когда вы вносите изменения. И не нужно бросать и воссоздавать базу данных каждый раз, когда происходит изменение, означает, что вы не теряете свои данные разработки. Единственные изменения, внесенные при выполнении миграции, - это те, которые необходимы для перемещения схемы из одной версии в другую, независимо от того, движется ли она вперед или назад во времени.

Не только миграция Laravel предоставляет вам возможность изменить схему базы данных итеративным образом, но позволяет это сделать с использованием PHP-кода, а не SQL! Laravel Schema Builder позволяет нам создавать таблицы базы данных и быстро вставлять столбцы или индексы. Он использует чистый и выразительный синтаксис для выполнения операций с базой данных. Вы можете подумать о миграции Laravel в качестве контроля версий для своих баз данных! [...]

Там я нашел более объяснительный способ для laravel, чем официальная документация, хотя позже это также хорошо

1

По документированию Laravel:

Миграции, как управление версиями для базы данных, что позволяет команде легко модифицировать и обмениваться схемы базы данных приложения. Миграции, как правило, сопряжены с конструктором схем Laravel, чтобы легко создавать схему базы данных вашего приложения.

Если у вас есть команда, работающая с вами, настоятельно рекомендуется использовать их для изменений, которые должны применяться к схеме для работы приложения, эти миграции позволяют вам применять изменения в базе данных, такие как drop, create, update и т. д. С другой стороны, если вы собираетесь начать разработку с уже созданной Схемой, нет проблем, с которыми вы можете взаимодействовать со своей схемой с помощью Eloquent.

Путь, как Laravel берет информацию из вашей базы данных с красноречивым ОРМОМ, вот введение с Laravel Документации:

красноречивым ORM в комплекте с Laravel обеспечивает красивую, простую реализацию ActiveRecord для работы с вашим база данных. Каждая таблица базы данных имеет соответствующую «Модель», которая используется для взаимодействия с этой таблицей. Модели позволяют запрашивать данные в ваших таблицах, а также вставлять новые записи в таблицу.

Таким образом, вам нужно создать модель для каждой из ваших таблиц, за исключением таблиц многих-многих. Если ваша таблица Users вы должны назвать модель пользователя и Eloquent принять его автоматически, если нет, то вы должны переписать атрибут $table в модели, как это:

public $table = 'user'; 

остальное, что вы можете сделать с красноречивыми вы можете найти его по документации here

Надеюсь, это поможет вам.

Смежные вопросы