【问题标题】:Find result with hasmany relationship in laravel在laravel中查找具有hasmany关系的结果
【发布时间】:2016-07-12 20:28:28
【问题描述】:

我刚刚在 laravel 中开始了一个项目,这对我来说是一个新环境。我熟悉 PHP,也熟悉模型关系。但是 Laravel 的结构对于启动来说有点复杂。 所以问题是我有一个问题和课程表,一个问题可能有不止一门课程,所以我又创建了一个包含课程 ID 和问题 ID 的表。

问题模型

namespace App\Models;
use Illuminate\Database\Eloquent\Model;

class Question extends Model{

    protected $primaryKey = "id";

    public function courses(){
        return $this->hasMany('App\Models\CourseQuestion');
    }
}

课程模式

namespace App\Models;
use Illuminate\Database\Eloquent\Model;

class Course extends Model {
    protected $primaryKey = "id";

    public function questions(){
        return $this->hasOne('App\Models\CourseQuestion');
    }
} 

最后一门课程问题模型

namespace App\Models;
use Illuminate\Database\Eloquent\Model;

class CourseQuestion extends Model {
    protected $primaryKey = "id";

    public function questions(){
        return $this->hasOne('App\Models\Question');
    }

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

还有我得到结果的控制器 -

class IndexController extends BaseController {

    public function index(){
        $user = Question::with('user','courses','branches')->find(100);
        echo "<pre>";
        print_r($user); die;
    }
}

所以课程只返回课程 ID 和存储在第三个表中的问题,但我想要课程名称各自的 ID。请帮忙 谢谢。

【问题讨论】:

    标签: php mysql laravel laravel-5 relational-database


    【解决方案1】:
    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Question extends Model
    {
    
        protected $primaryKey = "id";
    
        public function courses()
        {
            return $this->hasMany('App\Models\CourseQuestion', 'course_question_id', 'id')
             ->select('id', 'name');
        }
    }
    

    【讨论】:

    • >同样明智地更改所有功能... >hasmany/hasone/belongsto >1=> 模型路径 >2=> local_foreignkey 名称 >3=> 主表的主键 >最后使用 select 获取如果您需要一些额外的特定字段>没有选择,您可以获得整个数据。
    • 这个答案你满意吗..?
    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多