我有一个一对一的单向关系。
class User extends Model
{
public $timestamps = false;
public function profile()
{
return $this->hasOne(Profile::class);
}
}
class Profile extends Model
{
public $timestamps = false;
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个具有单个配置文件的用户:
$user = User::firstOrCreate([
'name' => 'John',
'email' => 'john@email.com'
]);
$profile = new Profile([
'age' => 'age',
'sex' => 'sex'
]);
$user->profile()->save($profile);
Run Code Online (Sandbox Code Playgroud)
多次运行此命令会创建一个具有多个配置文件的用户,而不会出现异常/警告用户模型将具有多个关系。如何创建约束或确保用户只有一个配置文件?
更新:
因为我的命令可以多次运行,所以unique
onprofile_id
会抛出一个异常,这对我来说并不理想。我最终做了这样的事情:
$user = User::firstOrCreate([
'name' => 'John',
'email' => 'john@email.com'
]);
$user->profile()->firstOrCreate([
'age' => 'age',
'sex' => 'sex'
]);
Run Code Online (Sandbox Code Playgroud) 我试图了解泛型如何与 Scala 中的继承一起工作。我有以下代码:
sealed trait Model {}
case class Model1() extends Model
case class Model2() extends Model
trait Repo[A <: Model] {
def doSomething(model: A)
}
class Repo1 extends Repo[Model1] {
override def doSomething(model: Model1): Unit = {
println("Model 1")
}
}
class Repo2 extends Repo[Model2] {
override def doSomething(model: Model2): Unit = {
println("Model 2")
}
}
object Play extends App {
def getModel(i: Int): Model =
i match {
case 1 => Model1()
case 2 => Model2()
case …
Run Code Online (Sandbox Code Playgroud)