如何在laravel-5模型中使用多个表


How to use more then one table in laravel-5 model

我有一个活动菜单,它有三个子菜单。这些子菜单对于活动是通用的,但有不同的表。所以我想在一个模型类下使用这三个表,如何对彼此单独进行保存操作?

我的代码如下:

<?php
namespace App'Models;
use Illuminate'Database'Eloquent'Model;
use Illuminate'Support'Str;
use DB;

class Activity extends Model {
    protected $table1 = 'task_management';
    protected $table2 = 'call_management';
    protected $table3 = 'event_management';
}
use DB;
I have preferred using the DB query whenever i had to work with more than one table, below is a sample query.
$data = DB::table('base table name')
              ->join('join table name', 'join table name id', '=', 'master table name id')
              ->select('column 1', 'column 2', 'column 3')
              ->where('column1', $val);

您可以创建另一个基于模型构建的类,甚至可以像@Peeje提到的那样只使用普通SQL查询。模型是用来处理Laravel中的单个表的——我认为没有一种简单的方法可以让它处理不同的表。

我建议您遵循Eloquent方式,

你应该创建3个模型并进行关系

就像一样简单

<?php
namespace App;
use Illuminate'Database'Eloquent'Model;
class CallManagement extends Model
{
    /**
     * Get the task record associated with the user.
     */
    public function task()
    {
        return $this->hasOne('App'TaskManagement');
    }
}

这允许您像$task = User::find(1)->TaskManagement;一样进行检索注意:您应该根据需要创建和自定义模型。