【注意】最后更新于 December 6, 2019,文中内容可能已过时,请谨慎使用。
用代码说话
相关命令:
创建迁移文件
php artisan make:migration Pate_table
进行迁移
php artisan migrate
创建模型文件
php artisan make:model Page
把如下文件内容复制到对应的文件下,就可以按照注释进行测试了。控制器的代码就需要自己动手一遍了,用一次就会了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Page extends Model
{
//可批量注入的字段
protected $fillable = ['*'];
//不可批量注入的字段
protected $guarded = [];
//声明时间字段,这些字段可以调用Carbon,dateTime实例
//如:
//$page = Page::find(1);
//dd($page->created_at->getTimestamp());
protected $dates = ['created_at', 'updated_at'];
//设置时间字段属性
// protected $dateFormat = 'U';
//当使用 toArray() 和 toJson() 时要隐藏的字段
protected $hidden = ['body'];
//$hidden是隐藏 它是显示 两者存在一个就好
// protected $visible = ['first_name', 'last_name'];
//定义字段调用时的所用的格式
//比如下面的$page->body 将自动json转array 存储的时候array自动转json
protected $casts = [
'body' => 'array',
];
//append添加字段是当需要对数据添加不存在的字段的时候,在这里声明一下,
//需要配合 getFooAttribute 方法使用,
//注意:不要在这里写可调用的字段
// 比如下面的 getTitleAttribute 这个,
//如果 $append 数组中存在 title的话则会因为获取不到 $value 参数去执行方法内容 且会将结果覆盖到原有的字段
protected $appends = ['other'];
//当类似$page->title的时候调用该方法,
//已发现的问题是在使用select foo as title的时候也会调用这个方法
public function getTitleAttribute($value)
{
return strtolower($value).'+salt';
}
public function getOtherAttribute()
{
return 'this is other ziduan';
}
//当添加或更新title字段的时候将调用该方法,
//例如$page->title = 'foo'; foo将作为参数传递到这里,
public function setTitleAttribute($value)
{
$this->attributes['title'] = strtoupper($value);
}
}
|
相关的表结构如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreatePagesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('pages', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('slug')->nullable();
$table->text('body')->nullable();
$table->integer('user_id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('pages');
}
}
|
文章作者
GPF
上次更新
2019-12-06
(7ba517e)