Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 使用';或';或';和';第一个参数中的运算符?_Laravel_Laravel 7 - Fatal编程技术网

Laravel 使用';或';或';和';第一个参数中的运算符?

Laravel 使用';或';或';和';第一个参数中的运算符?,laravel,laravel-7,Laravel,Laravel 7,而在Laravel查询生成器中,updateOrInsert可能有多个参数,默认情况下使用的运算符是什么。 例如,文件中提到: DB::table('users') ->updateOrInsert( ['email' => 'john@example.com', 'name' => 'John'], ['votes' => '2'] ); 这是否意味着选中了电子邮件&&名称,还是意味着选中了电子邮件|名称?如果需要,我们

而在Laravel查询生成器中,
updateOrInsert
可能有多个参数,默认情况下使用的运算符是什么。 例如,文件中提到:

DB::table('users')
    ->updateOrInsert(
        ['email' => 'john@example.com', 'name' => 'John'],
        ['votes' => '2']
    );
这是否意味着选中了电子邮件
&&
名称,还是意味着选中了电子邮件
|
名称?如果需要,我们如何控制一个或另一个

如果这是一个愚蠢的问题,或者没有按照正确的词汇表来表达,请原谅我,因为我是拉雷维尔的新手。我在文档或API中找不到此信息。

updateOrInsert()方法用于在符合条件的情况下更新数据库中的现有记录,或在不存在匹配记录的情况下创建。其返回类型为布尔型

语法

DB::table('blogs')->updateOrInsert(
   [Conditions],
   [fields with value]
);
在您的查询中:

DB::table('users')->updateOrInsert(
   ['email' => 'john@example.com', 'name' => 'John'],
   ['votes' => '2']
);

它将检查
email=='john@example.com“
&
name=='john'
,然后它将更新
投票数=2

是的,您也可以使用
updateOrCreate
updateOrCreate
是一种雄辩的方法,虽然
updateOrInsert
是一种查询生成器方法,但是如果我想要
email=='john@example.com“
姓名==”约翰“
?运气不好。我在Laravel的官方github回购协议中找不到用于
updateOrInsert
查询生成器的方法。看一看