Php Laravel フレームワークの複数テーブルのリレーションシップ処理 雄弁な 1 対多のリレーションシップ処理
Php Laravel フレームワークのマルチテーブル リレーションシップの処理 Eloquent の 1 対多のリレーションシップの処理
このブログ投稿では主に、Laravel フレームワークにおける Eloquent の 1 対多のリレーションシップの処理について紹介します。互いに関連しています。たとえば、ブログ投稿に多くのコメントが含まれている場合や、注文が注文を行ったユーザーに関連している場合があります。 Eloquent を使用すると、これらの関係の管理と処理が簡単になります。 Laravel は 4 種類のリレーションシップを提供します: - 1 対 1 - 1 対多 - 多対多 - ポリモーフィックなリレーションシップ
1 対多
1 対多のリレーションシップの例はブログです。コメントの多い投稿やコース、複数のスコア情報などリレーションシップ モデル Model は次のように定義できます:
<?php/** * sobjectinfo:课程信息表 Model * soc_id :主键自增 * soc_name :课程名 * soc_teacher:授课老师 **/class SobjectInfo extends Eloquent { //自定义表名(protected $table) protected $table = 'sobjectinfo'; //自定义主键(protected $primaryKey) protected $primaryKey = 'soc_id'; //关闭 创建时间 与 更新时间 的自动维护(protected $timestamps) public $timestamps = false; /* * 定义一对多关系 */ public function Scoreinfo(){ return $this -> hasMany('Scoreinfo','soc_id'); }}?>
対応する逆リレーションシップ モデルを定義します:
<?php/** * scoreinfo:分数信息表 Model * so_id :主键自增 * s_id :学生信息表(stuinfo)主键 * soc_id :课程信息表(sobjectinfo)主键 * score :分数 */class ScoreInfo extends Eloquent { //自定义表名(protected $table) protected $table = 'scoreinfo'; //自定义主键(protected $primaryKey) protected $primaryKey = 'so_id'; //关闭 创建时间 与 更新时间 的自动维护(protected $timestamps) public $timestamps = false; /* * 分数表(ScoreInfo)与课程表(SobjectInfo)、学生信息表(StuInfo)有主外键关系 * 并且是一对多的关系 */ public function StuInfo(){ return $this -> belongsTo('StuInfo','s_id'); } /* * 定义逆向关系指向主键表 * */ public function SobjectInfo(){ return $this -> belongsTo('SobjectInfo','soc_id'); }} ?>
<?phpreturn array( 'title' => '分数信息', //栏目名 'single' => ' >>', //新建描述 'model' => 'ScoreInfo', //分数信息 'form_width' => 960, //左边栏目宽 //列表 'columns' => array( 'so_id' => array( 'title' => '编号', 'select' => "so_id", 'sort_field'=>'so_id' ), 's_name'=>array( 'title'=>'学生姓名', 'relationship' => 'StuInfo', 'select' => '(:table).s_name', ), 'soc_name'=>array( 'title'=>'课程名称', 'relationship' => 'SobjectInfo', 'select' => '(:table).soc_name', ), 'score'=>array( 'title'=>'考试分数', 'select'=>'score' ), ), //筛选信息 'filters' => array( 'so_id' => array( 'title'=>'编号' ), 'SobjectInfo'=>array( 'type' => 'relationship', 'title' => '<span style="font-family: Arial, Helvetica, sans-serif;">课程名</span><span style="font-family: Arial, Helvetica, sans-serif;">',</span> 'name_field' => 'soc_name', ), 'StuInfo'=>array( 'type' => 'relationship', 'title' => '学生姓名', 'name_field' => 's_name', ), 'score'=>array( 'title'=>'考试分数', 'type' => 'number' ), ), //修改、新增 'edit_fields' => array( 'StuInfo'=>array( 'type' => 'relationship', 'title' => '学生姓名', 'name_field' => 's_name', ), 'SobjectInfo'=>array( 'type' => 'relationship', 'title' => '课程名', 'name_field' => 'soc_name', ), 'score'=>array( 'title'=>'考试分数', 'type'=>'text' ), ));?>
「生徒名」と「コース名」は別のテーブルに格納されていますが、モデル内で事前に 1 対多の関係を確立しているため、自由に組み合わせることができます。
レンダリングは次のとおりです:

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
