Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да се присъедините към три маси от laravel eloquent модел

С Eloquent е много лесно да извличате релационни данни. Вижте следния пример с вашия сценарий в Laravel 5.

Имаме три модела:

  1. Статия (принадлежи към потребител и категория)

  2. Категория (има много статии)

  3. Потребител (има много статии)

  1. Article.php
    <?php
    namespace App\Models;
    use Eloquent;
    
    class Article extends Eloquent {
        protected $table = 'articles';
    
        public function user() {
            return $this->belongsTo('App\Models\User');
        }
    
        public function category() {
            return $this->belongsTo('App\Models\Category');
        }
    }
  1. Category.php
    <?php
    namespace App\Models;
    
    use Eloquent;
    
    class Category extends Eloquent {
        protected $table = "categories";
    
        public function articles() {
            return $this->hasMany('App\Models\Article');
        }
    }
  1. User.php
    <?php
    namespace App\Models;
    use Eloquent;
    
    class User extends Eloquent {
        protected $table = 'users';
    
        public function articles() {
            return $this->hasMany('App\Models\Article');
        }
    }

Трябва да разберете връзката и настройката на вашата база данни в моделите. Потребителят има много статии. Категорията има много статии. Статиите принадлежат на потребител и категория. След като настроите връзките в Laravel, става лесно да извлечете свързаната информация.

Например, ако искате да извлечете статия, като използвате потребителя и категорията, ще трябва да напишете:

$article = \App\Models\Article::with(['user','category'])->first();

и можете да използвате това така:

//retrieve user name 
$article->user->user_name  

//retrieve category name 
$article->category->category_name

В друг случай може да се наложи да извлечете всички статии в категория или да извлечете всички статии на конкретен потребител. Можете да го напишете така:

$categories = \App\Models\Category::with('articles')->get();
$users = \App\Models\Category::with('users')->get();

Можете да научите повече на http://laravel.com/docs/5.0/eloquent



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да променя MariaDB на MySQL в XAMPP?

  2. Как да открием UTF-8 символи в колона, кодирана с Latin1 - MySQL

  3. актуализиране на колони с пореден номер mysql

  4. Експортирайте и импортирайте всички MySQL бази данни наведнъж

  5. #1071 - Посоченият ключ беше твърде дълъг; максималната дължина на ключа е 1000 байта