Heim  >  Artikel  >  Backend-Entwicklung  >  Eloquent 入门

Eloquent 入门

WBOY
WBOYOriginal
2016-06-23 13:06:231042Durchsuche

创建一个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 入门

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn