使用Laravel雄辩的关系(一对多)返回NULL


Using Laravel eloquent relationship (One to Many) returns NULL

当我使用Laravel雄辩关系(一对多)时,结果为NULL。我在"work_hour"表中设置了数据,其中"workers_id"的值为2,"workers"表中有一行的id为2我遵循了文件"Laravel关系"

我的模式如下:

public function up()
    {
        Schema::create('work_hour', function($table){
            $table->increments('id');
            $table->integer('worked_hour');
            $table->time('worked_from');
            $table->time('worked_to');
            $table->integer('workers_id')->unsigned();
            $table->foreign('workers_id')->references('id')->on('workers');
            $table->integer('workday_id');
            $table->integer('offer_id');
        });
    }

PS:列workday_id,offer_id还没有设置为外部!

型号如下:

class Worker extends Eloquent{
    protected $fillable = ['first_name', 'last_name'];
}
class Workhour extends Eloquent{
    protected $table    = 'work_hour';
    public function worker(){
        return $this->belongsTo('Worker','workers_id');
    }
}

控制器PS:我在SO上搜索了同样的问题,我尝试了一些意见,然后我评论了

class WorkerController extends BaseController {
    protected $table    = 'workers';
....
    public function show($id){
        $worker     = Worker::find($id);
    //  $workhour   = Workhour::where('workers_id','=',$worker->id)->get(); 
    // casting the result: works $workhour->toArray()
    //  $workhour   = Worker::find($id)->with('workhour')->get(); 
    //Call to undefined method Illuminate'Database'Query'Builder::workhour()
    //  $workhour   = Worker::with('workhour')->where('id',2)->get(); 
    //Call to undefined method Illuminate'Database'Query'Builder::workhour()
    $workhour   = Worker::find($id)->workhour; 
    // null
        dd($workhour);
        return View::make('worker.show',['worker' => $worker,'workhour'=>$workhour]);
    }
    public function workhour(){
      return $this->hasMany('Workhour','workers_id');
    }

}

我用"…/public/worker/2"(Laravel 4)来称呼"showblade.php"我做错了什么?

您只需要添加与模型而非控制器的关系:

class Worker extends Eloquent{
    protected $fillable = ['first_name', 'last_name'];
    public function workhour(){
      return $this->hasMany('Workhour','workers_id');
    }
}