热搜:NVER node 开发 php

Eloquent 入门

2024-07-20 18:00:01
Eloquent 入门

创建一个eloquent model,这个model自动关联Article的表,

php artisan make:model Article

php artisan make:model Article                                         Model created successfully.

会在项目文件夹的app目录下生成这个文件

app/Article.php

需要注意的是这个model其实是会自动关联到你的数据库表的,自动将名字跟数据库的表绑定,所以名字要跟你的数据库的表要一样

使用tinker工具来创建一些测试数据

tinker命令行

php artisan tinker            Psy Shell v0.7.1 (PHP 5.5.31 — cli) by Justin Hileman>>> 

在里面输入

$article = new App\Article;//创建一个article实例,这里因为没有命名空间namespace的关系,需要写类的全路径,因为刚才已经知道article类文件在app根目录下$article->content='content';//因为这个article类是一个model,在laravel里面能够直接绑定数据库表,所以这个实例本身就是一个数据库对象,所以能用调用属性的方式来设置数据库表的数据>>> $article->publish_at=Carbon\Carbon::now();=> Carbon\Carbon {#633     +"date": "2016-05-14 17:55:54.000000",     +"timezone_type": 3,     +"timezone": "UTC",   }//使用一个carbon的类来设置时间,carbon的类很有名,需要安装的,可以用composer来安装,安装好后laravel就可以使用了,官网http://carbon.nesbot.com/$article->save();//使用save方法来保存这些设置好的数据库数据,在操作article实例的时候,数据只是保存在实例里面,需要save才能保存到数据库$second=App\Article::where('content','=','content')->get();=> Illuminate\Database\Eloquent\Collection {#653  //这里就是collection     all: [       App\Articles {#654         id: 1,         title: "title1",         content: "content1",         publish_at: "2016-05-14 18:04:44",         created_at: "2016-05-14 18:04:48",         updated_at: "2016-05-14 18:04:48",       },       App\Articles {#655         id: 2,         title: "title2",         content: "content2",         publish_at: "2016-05-14 18:07:38",         created_at: "2016-05-14 18:07:42",         updated_at: "2016-05-14 18:07:42",       },     ],   }get方法返回的是一个collection,是一个比数组更整洁整齐的数据集合,暂时只需要知道这是一个数据集合就行了。

直接使用create方法需要添加填充数据许可

>>> $article=App\Articles::create(['title'=>'second title','content'=>'second content','publish_at'=>Carbon\Carbon::now()]);Illuminate\Database\Eloquent\MassAssignmentException with message 'title'>>> //上面报错了,是因为需要有填充数据的权限//添加了许可之后重启tinker➜  blog php artisan tinkerPsy Shell v0.7.1 (PHP 5.5.31 — cli) by Justin Hileman>>> $article=App\Articles::create(['title'=>'second title','content'=>'second content','publish_at'=>Carbon\Carbon::now()]);=> App\Articles {#643     title: "second title",     content: "second content",     publish_at: Carbon\Carbon {#642       +"date": "2016-05-14 18:15:38.000000",       +"timezone_type": 3,       +"timezone": "UTC",     },     updated_at: "2016-05-14 18:15:38",     created_at: "2016-05-14 18:15:38",     id: 3,   }>>> 

这里需要在model里面增加填充数据许可

app/Articles.php

class Article extends Model{  protected $fillable=['title','content','publish_at'];}

本文由 PeterYuan 创作,采用 署名-非商业性使用 2.5 中国大陆 进行许可。 转载、引用前需联系作者,并署名作者且注明文章出处。神一样的少年 »Eloquent 入门