firstOrCreate连续插入新条目

时间:2019-03-18 13:59:00

标签: laravel eloquent laravel-5.8

我奔跑

php artisan make:model Models/Test -m

创建迁移文件

Schema::create('tests', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->double('longitude', 9, 4);
        $table->timestamps();
    });

运行迁移并编辑模型

namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Test extends Model
{
     protected $fillable = ['longitude'];
     //
}

我跑步时

$marker = Test::firstOrCreate([
    'longitude' => floatval(19.9276),
]);
echo $marker->id;

我总是看到新条目添加到数据库。

当我将列类型更改为varchar时,不会发生问题。

1 个答案:

答案 0 :(得分:0)

您使用的是错误的,如果要使用firstOr方法,则必须提供一个值来检查是否存在。第一个数组用于搜索现有值,另一个数组用于搜索新值:

    $marker = Test::firstOrCreate(
search values ->
 [
    'longitude' => floatval(19.9276),
 ],
 [
new values ->
 ]

);
echo $marker->id;

希望这会有所帮助