Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 4 如何在laravel 4中同时使用渴望加载和加入雄辩_Laravel 4_Inner Join_Eloquent_Eager Loading - Fatal编程技术网

Laravel 4 如何在laravel 4中同时使用渴望加载和加入雄辩

Laravel 4 如何在laravel 4中同时使用渴望加载和加入雄辩,laravel-4,inner-join,eloquent,eager-loading,Laravel 4,Inner Join,Eloquent,Eager Loading,型号 class WPModel extends Eloquent { protected $table = 'work_processes'; protected $guarded = array('id'); protected $softDelete = true; // declaring one-to-many relationship public function relatedWPAQs() { return $

型号

class WPModel extends Eloquent
{

    protected $table = 'work_processes';
    protected $guarded = array('id');
    protected $softDelete = true;

    // declaring one-to-many relationship
    public function relatedWPAQs()
    {
        return $this->hasMany('WPAQModel', 'wp_id');
    }

    public function relatedUsers()
    {
        return $this->belongsTo('UserModel', 'wp_owner_id');
    }

}

class UserModel extends Eloquent 
{
    protected $table = 'users';
    protected $softDelete = true;

    public function relatedWPs()
    {
        return $this->hasMany('WPModel', 'wp_owner_id');
    }
}

class WPAQModel extends Eloquent
{
    protected $table = 'wp_audit_questions';
    protected $fillable = array('wp_id', 'wp_audit_question');

    // declaring one-to-many relationship - the inverse way
    public function relatedWP()
    {
        return $this->belongsTo('WPModel', 'wp_id');
    }

    public function scopeWpParent($query, $id)
    {
        return $query->where('wp_id', '=' ,$id);
    }
}
控制器

class WPAQController extends BaseController
{
    public function showWPAQ($wpid)
    {
        $workprocess = WPModel::where('id', $wpid)
                                ->join('users', 'users.id', '=', 'work_processes.wp_owner_id')
                                ->select('users.user_name', 'work_processes.*')
                                ->with(array(
                                'relatedWPAQs' => function($query) use ($wpid)
                                    {
                                        $query->where('wp_id', '=',$wpid);
                                    }                                
                                ))
                                ->get();
        return View::make('wpaqshow')->with(compact('workprocess'));
    }
}
当我运行这段代码时,我得到以下错误

SQLSTATE[23000]:完整性约束冲突:中的1052列“id” where子句不明确(SQL:select
users
user\u name
work\u流程
*来自
work\u流程
内部连接
用户
打开
用户
id
=
工作流程
wp\u所有者id
其中
work\u进程
deleted\u在
处为空且
id
=?)(绑定:数组( 0=>'1',))

请尝试以下操作:

$workprocess = WPModel::where('work_processes.id', $wpid)
                                ->join('users', 'users.id', '=', 'work_processes.wp_owner_id')
                                ->select('users.user_name', 'work_processes.*')
                                ->with(array(
                                'relatedWPAQs' => function($query) use ($wpid)
                                    {
                                        $query->where('wp_id', '=',$wpid);
                                    }                                
                                ))
                                ->get();
您加入了几个表。现在,laravel有许多
ID
。您必须告诉Laravel在where子句中应该使用哪个
id

WPModel::where('id', $wpid)