1

我跑

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;

我一直看到新条目添加到 db 中。

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

4

1 回答 1

0

你用错了,如果你想使用 firstOr 方法,你必须给出一个值来检查是否存在。第一个数组用于搜索现有值,另一个用于新值:

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

);
echo $marker->id;

希望这可以帮助

于 2019-03-18T14:06:18.963 回答