lavavel中的ORM模型
建立模型
laravel中,一般一个模型对应一张表,可以使用artisan命令(laravel框架自带)来新建模型文件。
php artisan make:model Model\news
模型中接下要可以做以下的事情:
1、定义表名($table)
protected $table = ‘member’;
2、指定主键名($primaryKey)
protected $primaryKey = ‘mid’;
3、指定时间戳($timestamps)
默认情况下,模型操作会认为在你的数据库表有 created_at 和 updated_at
字段。如果你不希望让模型来自动维护这两个字段,可在模型内将 $timestamps
属性设置为 false。
// 时间戳 这里一定要注意它是用的public
public $timestamps = false;
4、批量赋值($fillable 与 $guarded)
当通过create方法来保存数据的时候,你需要先在你的模型上定义:
protected $fillable = [‘允许添加的字段名’];
protected $guarded = [‘拒绝添加的字段名’];
5、查询方法
table()
select()
where()
groupBy()
orderBy()
limit()
offset()
join()
leftjoin()
rightjoin()
distinct()
union()
get()
first()
count()
paginate()
$cols->appends()->links()
下面是一个完整的案例:
首先,创建一个模型,
php artisan make:model Model\news
<?php
namespace App\Model;
use Illuminate\Database\Eloquent\Model;
class news extends Model
{
protected $table="news";
protected $primary="id";
public $timestamps = false;
public function show(){
$rs=self::get();
return $rs;
}
}
可以看到,这里自定义了一个方法,操作数据库。接下来创建一个控制器:php artisan make:controller index
注意要引用模型use App\Model\news;
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Model\news;
class index extends Controller
{
public function index(){
//添加
$stmt=new news;
$stmt->title='hjf';
$stmt->save();
//修改
$rk=news::find('90');
$rk->title='my name is hjf';
$rk->save();
//删除
$rk=news::find('90');
$rk->title='my name is hjf';
$rk->delete();
//查询
$rs=news::orderBy('id','desc')->get();
foreach($rs as $v){
echo $v->id.$v->title.'<br>';
};
}
}
实例可参考:https://blog.csdn.net/createNo_1/article/details/81141336