小编Mir*_*c21的帖子

laravel 一对一的独特约束

我有一个一对一的单向关系。

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)

多次运行此命令会创建一个具有多个配置文件的用户,而不会出现异常/警告用户模型将具有多个关系。如何创建约束或确保用户只有一个配置文件?

更新:

因为我的命令可以多次运行,所以uniqueonprofile_id会抛出一个异常,这对我来说并不理想。我最终做了这样的事情:

$user = User::firstOrCreate([
    'name' => 'John', 
    'email' => 'john@email.com'
]);
$user->profile()->firstOrCreate([
    'age' => 'age', 
    'sex' => 'sex'
]);
Run Code Online (Sandbox Code Playgroud)

relational-database laravel eloquent

2
推荐指数
1
解决办法
300
查看次数

泛型类型如何与 Scala 中的继承一起工作?

我试图了解泛型如何与 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)

scala

0
推荐指数
1
解决办法
124
查看次数

标签 统计

eloquent ×1

laravel ×1

relational-database ×1

scala ×1