mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-02 21:41:19 +08:00
Update db-active-record.md links (#19628)
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
Enregistrement actif (*Active Record*)
|
||||
=====================================
|
||||
|
||||
L'[enregistrement actif](https://en.wikipedia.org/wiki/Active_record_pattern) fournit une interface orientée objet pour accéder aux données stockées dans une base de données et les manipuler.
|
||||
L'[enregistrement actif](https://fr.wikipedia.org/wiki/Active_record) fournit une interface orientée objet pour accéder aux données stockées dans une base de données et les manipuler.
|
||||
Une classe d'enregistrement actif (ActiveRecord) est associée à une table de base de données, une instance de cette classe représente une ligne de cette table, et un *attribut* d'une instance d'enregistrement actif représente la valeur d'une colonne particulière dans cette ligne.
|
||||
Au lieu d'écrire des instructions SQL brutes,
|
||||
vous pouvez accéder aux attributs de l'objet enregistrement actif et appeler ses méthodes pour accéder aux données stockées dans les tables de la base de données et les manipuler.
|
||||
@ -472,9 +472,9 @@ ou la méthode [[yii\db\ActiveRecord::getOldAttribute()|getOldAttribute()]].
|
||||
Cela est souvent le cas lorsque le modèle reçoit des entrées utilisateur de formulaires HTML ou chacune des valeurs est représentée par une chaîne de caractères.
|
||||
Pour garantir le type correct pour p. ex. des valeurs entières, vous devez appliquer un [filtre de validation](input-validation.md#data-filtering):
|
||||
> `['attributeName', 'filter', 'filter' => 'intval']`.
|
||||
Cela fonctionne pour toutes les fonctions de transformation de type de PHP comme [intval()](https://www.php.net/manual/en/function.intval.php),
|
||||
[floatval()](https://www.php.net/manual/en/function.floatval.php),
|
||||
[boolval](https://www.php.net/manual/en/function.boolval.php), etc...
|
||||
Cela fonctionne pour toutes les fonctions de transformation de type de PHP comme [intval()](https://www.php.net/manual/fr/function.intval.php),
|
||||
[floatval()](https://www.php.net/manual/fr/function.floatval.php),
|
||||
[boolval](https://www.php.net/manual/fr/function.boolval.php), etc...
|
||||
|
||||
### Valeurs d'attribut par défaut <span id="default-attribute-values"></span>
|
||||
|
||||
@ -688,7 +688,7 @@ try {
|
||||
```
|
||||
|
||||
> Note : dans le code précédent, nous utilisons deux blocs de capture pour être compatible avec PHP 5.x et PHP 7.x.
|
||||
`\Exception` met en œuvre l'[interface `\Throwable`](https://www.php.net/manual/en/class.throwable.php)
|
||||
`\Exception` met en œuvre l'[interface `\Throwable`](https://www.php.net/manual/fr/class.throwable.php)
|
||||
> à partir de PHP 7.0, c'est pourquoi vous pouvez sauter la partie avec `\Exception` si votre application utilise PHP 7.0 ou une version plus récente.
|
||||
|
||||
La deuxième façon consiste à lister les opérations de base de données qui nécessitent une prise en charge transactionnelle dans la méthode [[yii\db\ActiveRecord::transactions()]].
|
||||
|
||||
@ -956,7 +956,7 @@ $orders = $customer->bigOrders;
|
||||
### 中間テーブルによるリレーション <span id="junction-table"></span>
|
||||
|
||||
データベースの設計において、二つの関連するテーブル間の多重性が多対多である場合は、通常、
|
||||
[中間テーブル](https://en.wikipedia.org/wiki/Junction_table) が導入されます。
|
||||
[中間テーブル](https://ja.wikipedia.org/wiki/%E9%80%A3%E6%83%B3%E3%82%A8%E3%83%B3%E3%83%86%E3%82%A3%E3%83%86%E3%82%A3) が導入されます。
|
||||
例えば、`order` テーブルと `item` テーブルは、`order_item` と言う名前の中間テーブルによって関連付けることが出来ます。
|
||||
このようにすれば、一つの注文を複数の商品に対応させ、また、一つの商品を複数の注文に対応させることが出来ます。
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Active Record
|
||||
=============
|
||||
|
||||
O [Active Record](https://en.wikipedia.org/wiki/Active_record_pattern) fornece uma interface orientada a objetos para acessar e manipular dados armazenados em bancos de dados. Uma classe Active Record está associado a uma tabela da base de dados, uma instância do Active Record corresponde a uma linha desta tabela, e um *atributo* desta instância representa o valor de uma coluna desta linha. Em vez de escrever instruções SQL a mão, você pode acessar os atributos do Active Record e chamar os métodos do Active Record para acessar e manipular os dados armazenados nas tabelas do banco de dados.
|
||||
O [Active Record](https://pt.wikipedia.org/wiki/Active_record) fornece uma interface orientada a objetos para acessar e manipular dados armazenados em bancos de dados. Uma classe Active Record está associado a uma tabela da base de dados, uma instância do Active Record corresponde a uma linha desta tabela, e um *atributo* desta instância representa o valor de uma coluna desta linha. Em vez de escrever instruções SQL a mão, você pode acessar os atributos do Active Record e chamar os métodos do Active Record para acessar e manipular os dados armazenados nas tabelas do banco de dados.
|
||||
|
||||
Por exemplo, assumindo que `Customer` é uma classe Active Record que está associada com a tabela `customer` e `name` é uma coluna desta tabela. Você pode escrever o seguinte código para inserir uma nova linha na tabela `customer`:
|
||||
|
||||
@ -674,7 +674,7 @@ $orders = $customer->bigOrders;
|
||||
|
||||
### Relações Através de Tabela de Junção <span id="junction-table"></span>
|
||||
|
||||
Em uma modelagem de banco de dados, quando a multiplicidade entre duas tabelas relacionadas é `many-to-many`, geralmente é criada uma [tabela de junção](https://en.wikipedia.org/wiki/Junction_table). Por exemplo, a tabela `order` e a tabela `item` podem se relacionar através da tabela de junção chamada `order_item`. Um `order`, então, corresponderá a múltiplos `order items`, enquanto um `product item` também corresponderá a múltiplos `order items`.
|
||||
Em uma modelagem de banco de dados, quando a multiplicidade entre duas tabelas relacionadas é `many-to-many`, geralmente é criada uma [tabela de junção](https://pt.wikipedia.org/wiki/Entidade_associativa). Por exemplo, a tabela `order` e a tabela `item` podem se relacionar através da tabela de junção chamada `order_item`. Um `order`, então, corresponderá a múltiplos `order items`, enquanto um `product item` também corresponderá a múltiplos `order items`.
|
||||
|
||||
Ao declarar tais relações, você chamaria [[yii\db\ActiveQuery::via()|via()]] ou [[yii\db\ActiveQuery::viaTable()|viaTable()]] para especificar a tabela de junção. A diferença entre [[yii\db\ActiveQuery::via()|via()]] e [[yii\db\ActiveQuery::viaTable()|viaTable()]] é que o primeiro especifica a tabela de junção em função a uma relação existente enquanto o último faz referência diretamente a tabela de junção. Por exemplo,
|
||||
|
||||
|
||||
@ -473,8 +473,8 @@ Active Record 自动维护脏属性列表。 它保存所有属性的旧值,
|
||||
> 其中每个值都表示为一个字符串类型。
|
||||
> 为了确保正确的类型,比如,整型需要用[过滤验证器](input-validation.md#data-filtering):
|
||||
> `['attributeName', 'filter', 'filter' => 'intval']`。其他 PHP 类型转换函数一样适用,像
|
||||
> [intval()](https://www.php.net/manual/en/function.intval.php), [floatval()](https://www.php.net/manual/en/function.floatval.php),
|
||||
> [boolval](https://www.php.net/manual/en/function.boolval.php),等等
|
||||
> [intval()](https://www.php.net/manual/zh/function.intval.php), [floatval()](https://www.php.net/manual/zh/function.floatval.php),
|
||||
> [boolval](https://www.php.net/manual/zh/function.boolval.php),等等
|
||||
|
||||
### 默认属性值(Default Attribute Values) <span id="default-attribute-values"></span>
|
||||
|
||||
@ -689,7 +689,7 @@ try {
|
||||
```
|
||||
|
||||
> Tip: 在上面的代码中,我们有两个catch块用于兼容
|
||||
> PHP 5.x 和 PHP 7.x。 `\Exception` 继承于 [`\Throwable` interface](https://www.php.net/manual/en/class.throwable.php)
|
||||
> PHP 5.x 和 PHP 7.x。 `\Exception` 继承于 [`\Throwable` interface](https://www.php.net/manual/zh/class.throwable.php)
|
||||
> 由于 PHP 7.0 的改动,如果您的应用程序仅使用 PHP 7.0 及更高版本,您可以跳过 `\Exception` 部分。
|
||||
|
||||
第二种方法是在 [[yii\db\ActiveRecord::transactions()]] 方法中列出需要事务支持的 DB 操作。
|
||||
@ -954,7 +954,7 @@ $orders = $customer->bigOrders;
|
||||
### 中间关联表(Relations via a Junction Table) <span id="junction-table"></span>
|
||||
|
||||
在数据库建模中,当两个关联表之间的对应关系是多对多时,
|
||||
通常会引入一个[连接表](https://en.wikipedia.org/wiki/Junction_table)。例如,`order` 表
|
||||
通常会引入一个[连接表](https://zh.wikipedia.org/wiki/%E5%85%B3%E8%81%94%E5%AE%9E%E4%BD%93)。例如,`order` 表
|
||||
和 `item` 表可以通过名为 `order_item` 的连接表相关联。一个 order 将关联多个 order items,
|
||||
而一个 order item 也会关联到多个 orders。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user