Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tham gia ba bàn bằng mô hình hùng biện laravel

Với Eloquent, rất dễ dàng để truy xuất dữ liệu quan hệ. Kiểm tra ví dụ sau với kịch bản của bạn trong Laravel 5.

Chúng tôi có ba mô hình:

  1. Bài viết (thuộc về người dùng và danh mục)

  2. Chuyên mục (có nhiều bài)

  3. Người dùng (có nhiều bài viết)

  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');
        }
    }

Bạn cần hiểu mối quan hệ cơ sở dữ liệu của bạn và thiết lập trong các mô hình. Người sử dụng có nhiều bài báo. Chuyên mục có nhiều bài. Bài viết thuộc về người dùng và danh mục. Khi bạn thiết lập các mối quan hệ trong Laravel, việc truy xuất thông tin liên quan trở nên dễ dàng.

Ví dụ:nếu bạn muốn truy xuất một bài báo bằng cách sử dụng người dùng và danh mục, bạn cần viết:

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

và bạn có thể sử dụng như vậy:

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

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

Trong trường hợp khác, bạn có thể cần truy xuất tất cả các bài báo trong một danh mục hoặc truy xuất tất cả các bài báo của một người dùng cụ thể. Bạn có thể viết nó như thế này:

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

Bạn có thể tìm hiểu thêm tại 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. MySQL có bỏ qua các giá trị null trên các ràng buộc duy nhất không?

  2. Làm cách nào để tôi có thể Chèn nhiều hàng vào một bảng MySQL và trả về các ID mới?

  3. Cách tạo MySQL máy chủ liên kết

  4. Hibernate:Tạo bảng Mysql InnoDB thay vì MyISAM

  5. Giao dịch Codeigniter