• Laravel5.1 模型--创建与修改


    上次我们了解了如何查询模型数据,今天我们来看看如何创建一个模型,

    使用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());
        }

    更加简洁。

  • 相关阅读:
    vivo手机上的系统级消息推送平台的架构设计实践
    基于Netty,从零开发IM(二):编码实践篇(im单聊功能)
    基于Netty,从零开发IM(三):编码实践篇(群聊功能)
    【前端】Windows升级nodejs到最新版本
    【Nginx】Linux上安装Nginx详细教程(保姆级教程)
    【MySQL】在Win10上安装MySQL压缩包安装版
    【SQL】批量操作:批量插入、删除
    【SQL】查询存在于一个表而不存在于另外一个表的数据
    Java开发学习(十)基于注解开发定义bean
    Java开发学习(十一)基于注解开发bean作用范围与生命周期管理
  • 原文地址:https://www.cnblogs.com/Alex-sk/p/6501161.html
Copyright © 2020-2023  润新知