0
當我使用Laravel雄辯 - 關係(一對多)時,結果爲NULL。 我已經設置好的了在「work_hour」表,其中「workers_id」具有值2並沒有排在「工」表ID數據= 2 我跟着文檔「Laravel relationships」使用Laravel雄辯關係(一對多)返回NULL
我的模式是這樣的:
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:columns workday_id,offer_id arent set foreign,yet!
模型是這個樣子的:
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:我找遍了同樣的問題上是這樣,我嘗試了一些意見,然後我評論他們出去
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');
}
}
林調用「show.blade.php」與「.../public/worker/2」(Laravel 4) 我做錯了什麼?
爲什麼在你的控制器中定義的雄辯關係('workhour()'方法和表名)? – kajetons 2014-08-29 07:00:51
它返回'null',因爲'Worker'模型沒有定義關係。 – 2014-08-29 07:09:09
@JarekTkaczyk_deczo_謝謝,您有權利,我已將workhour()函數添加到控制器中,而不是模型中,謝謝!現在它完美地工作,...你應該寫回答接受 – jeugen 2014-08-29 07:32:49