2016-06-08 172 views
-1

我在学习laravel 5,它与数据库有关系。我可以找到关于如何使用sqlite和mysql的大量信息,但是我在理解什么是迁移,它们如何与数据库以及我的主要问题之间存在问题......
如果我有一个预先创建的postgres数据库, ,比方说,10个表格及其关系已经开始运行,我怎样才能让Laravel与他们互动?
例如,我曾这样定义我的Postgres架构表:用PostgreSQL了解Laravel迁移

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表,对吧?
或者我应该直接创建一个控制器来与de 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,报价:

[...]迁移是帮助你,而不必删除并重新演变您的应用程序(也被称为其DDL)的数据库模式的Laravel方式每次更改时创建数据库。每次发生更改时不必删除并重新创建数据库,这意味着您不会丢失开发数据。执行迁移时所做的唯一更改是将模式从一个版本迁移到另一个版本所需的更改,无论该迁移是及时向前还是向后。

Laravel迁移不仅为您提供了一种以迭代方式更改数据库模式的方法,但它可以让您使用PHP代码而不是SQL来执行操作! Laravel Schema Builder允许我们快速创建数据库表格并插入列或索引。它使用干净和表达的语法来实现数据库操作。您可能会将Laravel迁移视为您数据库的版本控制! [...]

在那里我发现了一个比官方文档更具解释性的laravel方式,虽然后来它也不错

1

根据Laravel的文档:

迁移就像版本控制数据库,允许团队轻松修改和共享应用程序的数据库模式。迁移通常与Laravel架构构建器配合使用,以轻松构建应用程序的数据库架构。

如果你有一个团队与您合作,强烈建议您使用它们必须在方案应用到应用程序的工作变化,这些迁移让您将更改应用到数据库般的落差,创建,更新等等。另一方面,如果你打算开始用已经创建的Schema开发,你可以用Eloquent与你的方案进行交互。

为Laravel采取信息从数据库与口才一个ORM,这里是Laravel文档介绍的方法:

能言善辩的ORM包含Laravel提供了一个美丽的,简单的ActiveRecord实现与合作的数据库。每个数据库表都有一个对应的“模型”,用于与该表进行交互。模型允许您查询表中的数据,并将新记录插入表中。

所以你必须为你的每一个表格创建一个模型,除了许多表格之外。如果你的表是Users必须命名模型用户和雄辩把它自动如果没有,则必须在模型像这样覆盖$table属性:

public $table = 'user'; 

其余的你可以用雄辩做什么,你可以找到它在文档 here

我希望这可以帮助你。