Php Laravel 4:获取最后附加记录的ID

Php Laravel 4:获取最后附加记录的ID,php,laravel,laravel-4,eloquent,Php,Laravel,Laravel 4,Eloquent,在Laravel4中,如何检索上次插入的pivot记录的ID 我的模型定义如下: class Action extends Eloquent { public function people() { return $this->belongsToMany('Person')->withTimestamps()->withPivot('mailing_data'); } } class Person extends Eloquent {

在Laravel4中,如何检索上次插入的pivot记录的ID

我的模型定义如下:

class Action extends Eloquent
{
    public function people()
    {
        return $this->belongsToMany('Person')->withTimestamps()->withPivot('mailing_data');
    }
}

class Person extends Eloquent {
    public function actions()
    {
        return $this->belongsToMany('Action')->withTimestamps();
    }
}
我想把记录的ID插入
$action->people()->附加($person\u id)

有没有不使用mysql\u insert\u id的方法?我更喜欢雄辩的方式


我使用的是Laravel4,而不是4.1

您最好使用
mysqli\u insert\u id
而不是弃用的
mysql\u insert\u id
,尽管您需要确保使用相同的连接

以“雄辩”的方式解决问题的最简单和最安全的方法是简单地使用您已经知道的事实(即
$person\u id
和您将人员附加到的内容)通过查询查找pivot记录id


<>编辑:或者,如果<代码> ID <代码>很重要,请考虑不要使用数据透视表。

谢谢你的回答。我知道第二个事实,但我认为,例如
$person->save()
设置生成的id,对于
attach()
有一种类似的方法,可能有更好的方法。但数据透视表ID的用例并不多,因此轻松检索数据透视表并不重要,因此我并不感到惊讶,因为它不是一种雄辩(据我们所知)或可能是大多数ORM的方式。这些记录总是唯一的,因此您不需要区分其他相同的记录。我无法想象您何时会知道pivot表记录ID,而不知道两个连接ID。这里有一个答案是不安全的;它建议您只需选择MAX id。我的方式可能不优雅,但安全且易于理解。我知道两个连接id。对我来说,一个人可以多次执行相同的操作,因此存在具有
Person\u id
-
Action\u id
组合的
n
记录。我需要通过邮件队列访问这个pivot表中的其他数据,因此我不确定是否可以依赖MAX-idAh。你把人们和行动联系在一起。我会以不同的方式进行设计——你所拥有的Action和我所拥有的ActionType,我只会有一个简单的Personations表,其中包含相关ID、日期和其他数据。因此,您将以ID结束,因为您将像往常一样执行
$personAction->save()