我的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图:
问题1
Laravel提供了一些在模型类上定义自定义名称后动态设置主键值的方法吗?
问题2
在document
表上,列fluxo_mensagem_id
是引用id
fluxo_mensagem
数据透视(中间)表的外键。有某种方式可以“联系”#34; (我们可以将Belongs To relationships)Pivot
对象转换为Document
模型吗?
例如:
$pivot = $mensagem->fluxos()->first()->pivot;
$document = new Document;
$document->fluxoMensagem()->associate($pivot);
这符合问题,因为他的意图是在子模型上设置外键。
答案 0 :(得分:0)
关于问题1:您可以将主键值设置为任何其他值,但是您需要将$ incrementing = false设置为其他值,否则它将另存为0。
/**
* Indicates if the IDs are auto-incrementing.
*
* @var bool
*/
public $incrementing = false;