Laravel:设置自定义主键值的方法

时间:2017-12-29 14:36:22

标签: php mysql laravel laravel-5 orm

我的Document模型有自定义主键名,因此我键入了:

class Document extends Model {

    protected $primaryKey = 'fluxo_mensagem_id';

在此之后,我想Laravel知道我的主键名称,然后我不希望每次需要设置其值时都必须手动输入它。类似的东西:

$document = new Document;
$document->setPrimary($pivot->id);

而不是:

$document = new Document;
$document->fluxo_mensagem_id = $pivot->id;
  

有关详细信息,请参阅我的部分ER图:

enter image description here

问题1

Laravel提供了一些在模型类上定义自定义名称后动态设置主键值的方法吗?

问题2

document表上,列fluxo_mensagem_id是引用id fluxo_mensagem数据透视(中间)表的外键。有某种方式可以“联系”#34; (我们可以将Belongs To relationshipsPivot对象转换为Document模型吗?

例如:

  $pivot = $mensagem->fluxos()->first()->pivot;
  $document = new Document;
  $document->fluxoMensagem()->associate($pivot); 

这符合问题,因为他的意图是在子模型上设置外键。

1 个答案:

答案 0 :(得分:0)

关于问题1:您可以将主键值设置为任何其他值,但是您需要将$ incrementing = false设置为其他值,否则它将另存为0。

/**
 * Indicates if the IDs are auto-incrementing.
 *
 * @var bool
 */
public $incrementing = false;