当前,我正在使用spatie uuid软件包。问题是,它会在创建新的数据行时自动创建uuid二进制(16)而不是uuid文本。我想插入uuid的文本版本。可以这样做吗?
模型
use HasBinaryUuid;
protected $table = 'furnitures';
protected $guarded = [];
public $incrementing = false;
public function getKeyName()
{
return 'id';
}
控制器(商店)
return Furniture::create([
'name' => $request['name'],
'code' => $request['code'],
]); //this automatically generate uuid binary(16) id
答案 0 :(得分:1)
您正在使用的库通过将UUID存储为二进制来优化UUID。使用相同的库将其存储为文本会违背其目的。您应该没有任何理由将其存储为文本,因为该库正在为您进行所有转换。
例如,如果您想在URL或JSON中使用UUID,则库可以为您从二进制转换为文本。
$model = MyModel::create();
dump($model->uuid_text); // "6dae40fa-cae0-11e7-80b6-8c85901eed2e"
有关更多示例,请查看documentation。
Laravel还提供了其他UUID库,这些库不使用二进制版本。
答案 1 :(得分:0)
我通过使用返回uuid文本版本的代码model PulseTest "Test FixedDelay with Pulse Input";
Modelica.Blocks.Sources.Pulse pulse(
startTime = 1,
width = 100,
period = 1/32,
amplitude = 32,
nperiod = 1
);
Modelica.Blocks.Nonlinear.FixedDelay fixedDelay( delayTime = 5 );
Modelica.Blocks.Continuous.Integrator x; // integrator for the undelayed pulse
Modelica.Blocks.Continuous.Integrator y; // integrator for the delayed pulse
equation
connect( pulse.y, fixedDelay.u );
connect( fixedDelay.y, y.u );
connect( pulse.y, x.u );
end PulseTest;
建立了解决此问题的方法。但是我不确定这是最好的方法。任何其他想法都欢迎发布。
Mymodel::generateUuid(true)