上次我们了解了如何查询模型数据,今天我们来看看如何创建一个模型,
使用save创建模型
save方法很简单,看一个例子就明白了:
// 创建一个模型 $article = new AppModelsArticle(); // 设置模型的值 $article->title = '标题'; $article->id = 60; $article->content = '一些内容'; $article->author = 'larger K'; if ($article->save()){ echo '添加成功'; }else{ echo '添加失败'; }
这样就可以创建一个模型 并把数据插入了数据库中,save方法也可以接受一个关联数组,再次就不做演示了。
批量赋值--create方法
这是我们最常使用的一种方法,因为它相比较于save更加简洁方便,create方法是批量赋值的,如果要使用批量赋值 需要在模型中声明白名单(fillable)或黑名单(guarded),当然 我们可以只声明白名单或只声明黑名单即可,因为非黑即白。
- fillable数组:声明有哪些属性是可以批量赋值的。
- guarded数组:声明哪些数组是不可以批量赋值的。
class Article extends Model { // 声明哪些属性是可以批量赋值的 protected $fillable = ['title','content','author']; }
如果我们在某种情况下不得不修改白名单以外(即黑名单)的属性 那怎么办呢? 这时我们只能使用save方法了。
下面我们来模拟一个环境,我们需要接受html表单提交过来的数据 并创建模型 插入数据库:
public function store(Request $request) { // 表单数据都在 Request中 关于Request以后会普及到 Article::create($request->all()); }
上面的例子只需要一行代码就可以完成插入工作。
使用save进行更新数据
save方法不仅仅可以插入数据,也可以更新数据:
// 首先通过id查找数据 $article = AppModelsArticle::findOrFail(60); // 设置要更新的值 $article->title = '新的标题'; $article->id = 21; $article->content = '新的内容'; $article->author = 'ASK'; if ($article->save()){ echo '更新成功'; }else{ echo '更新失败'; }
批量赋值--update
相对应create而言,另一个批量赋值是专门用来更新的方法:update,update也是批量赋值方法 需要注意白名单和黑名单
public function update(Request $request, $id) { // 获取模型数据 $article = Article::findOrFail($id); $article->update($request->all()); }
更加简洁。