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

Php Laravel:设置自定义主键值的方法,php,mysql,laravel,laravel-5,orm,Php,Mysql,Laravel,Laravel 5,Orm,我的文档模型具有自定义主键名称,因此我键入: class Document extends Model { protected $primaryKey = 'fluxo_mensagem_id'; 在此之后,我假设Laravel知道我的主键名,这样我就不必在每次需要设置它的值时手动键入它。比如: $document = new Document; $document->setPrimary($pivot->id); 而不是: $document = new Docume

我的
文档
模型具有自定义主键名称,因此我键入:

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\u mensage\u id
列是一个外键,它引用
id
fluxo\u mensage
透视(中间)表。有一种方法可以将
Pivot
对象与
Document
模型“关联”(就像我们可以做的那样)

例如:

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

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

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

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

问题1:为什么需要更改主键?Q2:在文档中,您可以手动更改文档
fluxo mensagem\u id
prop:
$document->fluxo mensagem\u id=$pivot->id@SérgioReis Q1:我不想更改主键,我正在寻找一些创建模型的方法。