准备数据:
数据库迁移:
首先,让我们使用migration[迁移命令]来定义一个数据库表来承载全部的任务,laravel 的数据库迁移命令提供了一种便捷的方式来定义你的数据库结构并且易于修改,表现形式为php代码。从而代替了告诉你的团队成员来手工的添加字典到本地复制数据库,你的队友能够简单的允许迁移命令来推送资源控制。
users表
由于我们开始允许用户来创建用户在我们的应用内,我们需要一个表来存储我们的用户,非常值得庆幸的是,laravel 已经准备迁移命令 创建一个基础的 uses表,所以我们不需要手动生成一个。这个默认迁移命令对于uses表已经存在于 database/migrations 路径。
tasks表
接下来,我们创建命令我们可以承载我们全部的任务,这里的 Artsan Cli 命令行能够使用生成多样性的类并且我我们可以保存大部分作为你创建的laravel 工程在这个案例,让我们使用 make:migration 命令来创建一个新的数据库迁移对于我们的 tasks 表。
命令如下:
php artisan make:migration create_tasks_table –create=tasks
这条迁移命令类将会被存放在 database/migration 工程目录下,所以你也许会注意到,这个 make:migration 命令已经添加一个 自增ID 和 时间戳在这个 迁移类文件里面。 让我们编辑这个文件并且添加字符串字段类型对应这个任务的名称,还有 user_id 字段作为 我们 tasks表跟 users表的关联。
如上图所示。
然后来运行我们的迁移类,我们将会用到 migrate artisan 命令。如果你使用主页。
你应该运行这个命令从我们的虚拟主机里面,由于你的主机没有直接的权限去连接数据库。
简单点说:就是如果运行这个命令,你需要 连接及操作mysql数据库的权限,否则要报错。
执行下面的命令:
php artisan migrate
这个命令将会创建我们所有的数据库表。如果你使用你自己选择的数据库客户端进行数据库检查的时候。你应该可以看见 tasks 跟 users 这两个表,其中包含我们在迁移类里面定义的字段。接下来 我们准备去定义 集合映射模型们。
集合[eloquent ]模型
Eloquent 是Laravel 默认的ORM(对象-关系 映射); Eloquent 让你可以毫无痛苦的找回和存储数据到你的数据库,使用干净整洁的被定义的“models”.通常,每一个Eloquent模型 一致性的对应一个单独的数据库里面的数据表。
User 模型
首先,我们需要一个模型来匹配我们的users数据表,然后,如果你查看 app 这个工程目录,你应该可以看见laravel 已经准备了一个 user模型,所以我们就不需要手动去创建一个了。
Tasks 模型
接下来,让我们定义一个 Task 模型用来匹配我们刚刚创建的 tasks 数据表 ,我们也可以通过artisan 命令来创建这个模型,在这里案例中,我们将会用用到 make:model 命令
php artisan make:model Task
执行完上述命令,将会在你的应用底下的app 目录下面创建一个task 模型,通常,这个模型类是空的。我们一般不需要明确的告诉这个Eloquent模型跟那个数据表进行匹配,因为我们会假定这个鼠标就是这个模型名字的负数关系。所以,在这个案例中,这个 Task 模型 就会被认定为是匹配 tasks 数据库的。
让我们添加一些东西到这个模型里面,我们会规定 这个 name 属性 在这个 模型里面 应该是 “mass-assignable”,此处 应该是可以被可以被填写的 命令。
我们将学习更多的如何应用 Eloquent 模型,我们也可以添加更多的路由规则到我们的应用。当然,也可以通过 complete Elquent documentation 来免费获取更多的知识。Eloquent 关系
现在我们的模型已经定义,我们需要去连接他们,举个例子: 我们 “用户”可以有许多 “任务”实例。当一个 “任务”指派给一个“用户”,定义一个关系,将允许我们流畅的应用,通过我们的关系,如下例子:
首先,让我们定义一个 tasks 关系 在我们的 User 模型中, Eloquent 关系被定义作为一个函数在这个模型里面。Eloquent 支持几种不同类型的关系,所以想要获取更多信息 请查阅相关的文档。在这个例子中,我们将会定义一个 tasks 函数在 User 模型中, 这个调用 hasMany 方法 提供支持 通过 Eloquent;
这个 User 关系
接下来,让我们定义 user 关系在 Task 模型里面,在次,我们将会定义这个关系作为一个方法在一个模型里面。在这个例子中,我们将会使用 belongsTo 方法来提供 Eloquent 定义这个关系。
完美!现在我们的关系定义完成了,我们可以开始创建我们的控制器了。