public function tags() { return $this->belongsToMany('App\Tag'); }
Laravelの多対多
実際の開発では、いくつかの一般的な対応パターンに遭遇することがよくあります:
One-To-One //一对一One-To-Many //一对多Many-To-Many //多对多
これらの概念に初めて触れたとき、私は実際にはよく理解できませんでした。しかし、これらの概念を生活に当てはめてみると、非常に簡単に理解できるようになります。オンラインでよく見かける例を見てみましょう。
User-To-Profile // One-To-OneUser-To-Articles // One-To-ManyArticles-To-Tags // Many-To-Many
翻訳は次のとおりです。
1. データベーステーブルを作成する
記事テーブルを作成する
Schema::create('articles', function (Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('content'); $table->timestamps(); });
タグテーブルを作成する
Schema::create('tags', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->timestamps(); });
もちろん、これら 2 つのテーブルだけでは、この古典的な問題を解決するには十分ではありません。これら 2 つのテーブルに加えて、リレーションシップ テーブルを確立する必要があります。 Laravel では、公式の標準ルールに従う場合、3 番目のテーブルは次のようになります:
テーブル名 item_tag
Schema::create('article_tag', function(Blueprint $table) { $table->integer('article_id')->unsigned()->index(); $table->foreign('article_id')->references('id')->on('articles')->onDelete('cascade'); $table->integer('tag_id')->unsigned()->index(); $table->foreign('tag_id')->references('id')->on('tags')->onDelete('cascade'); });
2. モデルを作成し、関係を指定します
Article.php 内:
<br /> public function tags() { return $this->belongsToMany('App\Tag'); }
ログイン後にコピー
Tag.php 内: <br /> public function tags() { return $this->belongsToMany('App\Tag'); }
public function articles() { return $this->belongsToMany('App\Article'); }
$this などの関係を宣言するときに外部キーを指定できます。 ->belongsToMany('AppArticle','foreign_key', 'other_key');
article_tag テーブルに timestamps() を追加する場合、つまり、created_at と updated_at の 2 つのフィールドがテーブルに表示される場合は、Article で関係を宣言します。次のようにする必要があります: return $this->belongsToMany('AppTag')->withTimestamps();
$article = Article::find($id);dd($article->tags);
<br />public function showArticleByTagName($name) { $tag = Tag::where('value','=',$name)->first(); dd($tag->articles); }
ログイン後にコピー 上記はLaravelで多対多を実装しています。
<br />public function showArticleByTagName($name) { $tag = Tag::where('value','=',$name)->first(); dd($tag->articles); }
Happy Hacking

ホット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)

ホットトピック











多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します
