Laravel
をテンプレートにして作成
開始行:
[[FrontPage]]
*概要 [#i5329523]
-お遊びサーバ・検証サーバがサクッと作れるところがお気に入...
-稀に使用するので忘れやすい箇所だけメモしておく
*目次 [#n63f08d5]
#contents
*DB [#red1e1ce]
-マイグレートファイルを作成し,DBのカラムを定義.
**マイグレーションファイルの作成 [#w3e5c094]
$ php artisan make:model モデル名 [--migration もしくは ...
**マイグレーションを実行する [#v7500a66]
$ php artisan migrate
# すべてのマイグレーションをロールバックして新しく実行
$ php artisan migrate:refresh
# シーディングも行う
$ php artisan migrate --seed
**マイグレーションファイルで外部キー制約をつける [#b6d6a3...
-外部キーでリレーションを定義
#highlightjs(php)
// 外部キーを定義
$table->unsignedBigInteger('user_id');
// 定義した外部キーに制約をつける
$table->foreign('user_id')->references('id')->on('users');
-上記は冗長な書き方.以下の簡単な書き方も利用可能
#highlightjs(php)
// キーの定義と制約付を同時にできる(idがunsigned big int...
$table->foreignId('user_id')->constrained(); // constrai...
**モデルクラスでリレーションを使う [#j67859d2]
-1対1の場合は以下のようにして呼び出す
-Phoneモデルにはuser_idカラムがあるとする
#highlightjs(php)
class User extends Model
{
public function phone(): HasOne
{
return $this->hasOne(Phone::class [, Phoneモデル...
}
}
-逆の関係の場合(PhoneモデルからUserを取得できるようにす...
#highlightjs(php)
class Phone extends Model
{
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
}
-呼び出し方法は以下の通り
#highlightjs(php)
$phone = User::find(1)->phone;
**主キーに文字列を使用する [#nefc0eff]
-主キーはデフォルトでは数値が使用されることを想定している
-主キーは'id'というカラムが使用されるが'$primaryKey'プロ...
-文字列などの非数値を主キーに使用する場合は'$incrementing...
-モデルの主キーが数値ではない場合は'$keyType'プロパティで...
#highlightjs(php)
<?php
class MyModel extends Model
{
// 主キーの名前
$protected $primaryKey = 'my_primary_id';
// モデルのIDを自動増分するかどうか
public $incrementing = false;
// 主キーの型
protected $keyType = 'string';
}
終了行:
[[FrontPage]]
*概要 [#i5329523]
-お遊びサーバ・検証サーバがサクッと作れるところがお気に入...
-稀に使用するので忘れやすい箇所だけメモしておく
*目次 [#n63f08d5]
#contents
*DB [#red1e1ce]
-マイグレートファイルを作成し,DBのカラムを定義.
**マイグレーションファイルの作成 [#w3e5c094]
$ php artisan make:model モデル名 [--migration もしくは ...
**マイグレーションを実行する [#v7500a66]
$ php artisan migrate
# すべてのマイグレーションをロールバックして新しく実行
$ php artisan migrate:refresh
# シーディングも行う
$ php artisan migrate --seed
**マイグレーションファイルで外部キー制約をつける [#b6d6a3...
-外部キーでリレーションを定義
#highlightjs(php)
// 外部キーを定義
$table->unsignedBigInteger('user_id');
// 定義した外部キーに制約をつける
$table->foreign('user_id')->references('id')->on('users');
-上記は冗長な書き方.以下の簡単な書き方も利用可能
#highlightjs(php)
// キーの定義と制約付を同時にできる(idがunsigned big int...
$table->foreignId('user_id')->constrained(); // constrai...
**モデルクラスでリレーションを使う [#j67859d2]
-1対1の場合は以下のようにして呼び出す
-Phoneモデルにはuser_idカラムがあるとする
#highlightjs(php)
class User extends Model
{
public function phone(): HasOne
{
return $this->hasOne(Phone::class [, Phoneモデル...
}
}
-逆の関係の場合(PhoneモデルからUserを取得できるようにす...
#highlightjs(php)
class Phone extends Model
{
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
}
-呼び出し方法は以下の通り
#highlightjs(php)
$phone = User::find(1)->phone;
**主キーに文字列を使用する [#nefc0eff]
-主キーはデフォルトでは数値が使用されることを想定している
-主キーは'id'というカラムが使用されるが'$primaryKey'プロ...
-文字列などの非数値を主キーに使用する場合は'$incrementing...
-モデルの主キーが数値ではない場合は'$keyType'プロパティで...
#highlightjs(php)
<?php
class MyModel extends Model
{
// 主キーの名前
$protected $primaryKey = 'my_primary_id';
// モデルのIDを自動増分するかどうか
public $incrementing = false;
// 主キーの型
protected $keyType = 'string';
}
ページ名: