2016-04-15 158 views
0

我有三個模型Laravel 5.2如何通過laravel雄辯模型加入三個表

1. user 
2. course 
3. fee 

,其中用戶模式與課程表連接與一對多的關係,當然模型與費用表連接與一對一關係。

問題是,我必須找到用戶選擇課程的所有費用總和,並且那裏的用戶完成的stauts應該是1.如何爲它編寫查詢?

課程模式:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Course extends Model 
{ 
    protected $table='courses'; 
    protected $fillable = ['name','date','publication_status']; 


    public function fee(){ 
     return $this->hasOne('App\Fee','course_id', 'id'); 
    } 
     public function user() 
    { 
     return $this->belongsToMany('App\User','course_id','id'); 
    } 
} 

用戶模型:

<?php 

namespace App; 

use Illuminate\Foundation\Auth\User as Authenticatable; 

class User extends Authenticatable 
{ 
    protected $table='users'; 
    protected $fillable=['name','email','phone','course_id']; 



      public function courses() 
    { 
     return $this->hasMany('App\Course','id','course_id'); 
    } 
} 

費型號:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Fee extends Model 
{ 
     protected $table='fees'; 
    protected $fillable = ['fee','course_id']; 

    public function course() 
    { 
     return $this->belongsTo('App\Course', 'course_id', 'id'); 
    } 
} 

如果有人知道的解決方案,請提供一個。

回答

0

我想你可以找到用戶第一:

if(User::find($id)->complete_status == 1){ 
    $user = User::find($id); 
} 

這之後,您將返回該用戶所有的課程:

$courses = $user->courses; 

最後,你將實現一個foreach語句來回報每課程費用:

foreach($courses as $course){ 
    $feeSum += $course->fee->value; 
} 

舉例說明您的費用總額以查看:

return view('view_path' , compact('feeSum')); 

認爲$ feeSum與返回視圖語句的功能相同。

迴歸變量後,在您的視圖文件,將添加此例如:

<label>{{ $feeSum }}</label> 
+0

但我想重定向到revenuedetails頁面。 如何訪問$ id? – User57

+0

您必須將費用數組發送給您的視圖,並且在視圖文件中您可以嘗試以下操作:@foreach($ array_name as $ row) @endforeach –

0

您可能要考慮使用旋轉般的關係。

用戶模式可能有類似:

# Get the fees for a user: 
public function fees() 
{ 
    return $this->hasMany('App\Fees', 'fees', 'courses', 'course_id', 'course_id') 
       ->withPivot('iterate', 'fields', 'here', 'to', 'pass', 'on') 
       ->withTimestamps(); 
} 

上面的代碼尚未在所有測試,但我敢肯定的的hasMany/belongsToMany方法允許連接數關係中的表格。