2016-03-25 27 views
0

3つのサブメニューを持つアクティビティメニューがあります。これらのサブメニューはアクティビティに共通ですが、テーブルが異なります。だから私は、これらの3つのテーブルを1つのモデルクラスの下で使いたいのですが、どうすれば個々の操作を個別に保存できますか?次のようにlaravel-5モデルで2つ以上のテーブルを使用する方法

私のコードは次のとおりです。

<?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'; 
} 
+0

テーブルを正規化して各エンティティのモデルを作成できませんか? – Gokigooooks

答えて

0
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); 
+0

モデルクラスのオブジェクトを使用して複数のテーブル条件で保存操作を行うにはどうすればいいですか? –

+0

この既存の回答を確認してください:http://stackoverflow.com/questions/25136211/laravel-inserting-into-multiple-tables – Peeje

0

あなたは、あなたのモデルの上に構築された、あるいは単に@Peejeが述べたようにプレーンなSQLクエリを使用している別のクラスを作成することができます。モデルはLaravelの単一のテーブルで動作するようになっています。異なるテーブルで簡単に動作させる方法はないと思います。

0

私は雄弁な方法に従うことをお勧めだろう、

あなたは3つのモデルを作成して行う必要がありますrelationship

それはのようなあなたが$task = User::find(1)->TaskManagement; ようretriveすることができます

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

シンプルになります注:必要に応じてモデルを作成してカスタマイズする必要があります。

関連する問題