Eloquent 入门
程序员文章站
2022-04-16 16:42:02
...
创建一个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 入门