laravel update 问题

clipboard.png

clipboard.png
我的where 条件明明是
clipboard.png
怎么就变成了is null?
还有 laravel orm 里面怎么自定义主键啊 我的表并没有id 这个字段

阅读 6.4k
4 个回答

哥们你这个写法,我看不懂。
where有好几种写法,我只说我知道的(代码纯手打,有错的地方见谅)。
1.数组(限等于)
User::where(['name'=>'蚂蚁','sex'=>'男'])->get();
实际的sql: select * from user where name='蚂蚁' and sex='男';

2.字符串(不限制等于操作符,可以用like,<>等操作符)
User::where('name','蚂蚁')->where('sex','<>','女')->get();
实际的sql: select * from user where name='张三' and sex <> '女'

3.闭包(这玩意谁用谁知道,反正我工作经常用到)
User::where(function($query){

return $query->where('name','张三')->where('sex','<>','女');

})->where('address','江苏')->get();

实际的sql: select * from user where (name='张三' and sex <>'女') and address='江苏';

至于设置主键,我们默认的创建的模型都是继承Model的,默认主键都是id,你重写它的主键属性就可以了。例如

Class User extends Model{
    protected $primaryKey='uid';
}

欢迎进群一起交流学习:630418030

主键#

Eloquent 也会假设每个数据表都有一个叫做 id 的主键字段。你也可以定义一个 $primaryKey 属性来重写这个约定。

此外,Eloquent 假定主键是一个递增的整数值,这意味着在默认情况下主键将自动的被强制转换为 int。
如果你想使用非递增或者非数字的主键,你必须在你的模型 public $incrementing 属性设置为false。

引用自laravel官方文档,eloquent ORM部分。

可以直接先看看$where里面具体内容是什么
再看看 $req->get的源码是怎么返回的.或者给个默认值$req->get('mobile', '')

如果主键名称不是id,可在相应的model里加protected $primaryKey = '主键名';

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题