首页 > 后端开发 > php教程 > 如何在 Laravel 5 模型中定义复合主键?

如何在 Laravel 5 模型中定义复合主键?

DDD
发布: 2024-12-03 20:40:12
原创
756 人浏览过

How to Define Composite Primary Keys in Laravel 5 Models?

在 Laravel 5 模型中定义复合主键

您有一个包含两个主键(id 和 language_id)的表,并且想要包含它们在你的 Laravel 5 模型中。默认情况下,Laravel 模型中的主键是“id”,但您需要主键是“id”和“id_language”。

要实现此目的,您可以利用适用于 Eloquent 的 PHP 特性处理复合键:

namespace App\Model\Traits; // Adjust this to match your model namespace!

use Illuminate\Database\Eloquent\Builder;

trait HasCompositePrimaryKey
{
    // ... (Code from provided answer)
}
登录后复制

将此特征放置在主模型目录下的“Traits”目录中。然后,将以下行添加到任何复合键模型的顶部:

class MyModel extends Eloquent {
    use Traits\HasCompositePrimaryKey; // *** THIS!!! ***

    /**
     * The primary key of the table.
     * 
     * @var string
     */
    protected $primaryKey = array('key1', 'key2');

    // ...
}
登录后复制

附加说明:

  • 对于 Laravel 版本 5.7 及更高版本,您不需要在特征中定义 getIncrementing 方法。
  • 如果您遇到以下问题Model::find,您可以添加答案中提供的 find 方法。
  • 要将复合键与 Eloquent 的软删除功能结合使用,您需要定义 returnedAt 和 withTrashed 方法。

以上是如何在 Laravel 5 模型中定义复合主键?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板