我的网页目前需要5分钟才能加载。在最近的一篇文章后,我发现有近8000个查询调用,并且用户告诉我使用急切加载,所以我试图让它工作,但由于某种原因我不断收到错误。有谁知道我该如何解决这个问题?提前谢谢!
SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'shift_worker.schedule_id'(SQL:select * from
shift_worker
其中shift_worker
。schedule_id
in( 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25, 26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50, 51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75, 76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100, 101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125, 126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150, 151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,19 2,193,194,195,196,197,198,199,200,201,202,203,205,205,206,207,208,209,210,211,212,213,214,215,216, 217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241, 242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266, 267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291, 292,293,294,295,296,29,298,299,300,301,302,303,304,305,306,307,30,30,303,310,311,312,313,314,315,316, 317,318,319))
这是我在视图中运行的代码:
<?php
$workers = \App\Schedule::with('shift_worker')->get();
foreach ($workers as $worker) {
echo $worker->shift_worker;
}
以下是我的所有模型和表格:
工人模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Worker extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'worker';
protected $fillable = ['name'];
public function shift_worker()
{
return $this->belongsToMany('App\ShiftWorker');
}
}
工人表:
public function up()
{
Schema::create('worker', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
}
班次模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Shift extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'shift';
public function shift_worker()
{
return $this->belongsToMany('App\ShiftWorker');
}
}
转换表:
public function up()
{
Schema::create('shift', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('time');
$table->string('type');
$table->timestamps();
});
}
ShiftWorker模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class ShiftWorker extends Model
{
protected $table = 'shift_worker';
public function schedule(){
return $this->belongsToMany('App\Schedule');
}
}
ShiftWorker表:
public function up()
{
Schema::create('shift_worker', function (Blueprint $table) {
$table->increments('id');
$table->integer('worker_id')->unsigned();
$table->foreign('worker_id')->references('id')->on('worker')
->onDelete('cascade')->onUpdate('cascade');
$table->integer('shift_id')->unsigned();
$table->foreign('shift_id')->references('id')->on('shift')
->onDelete('cascade')->onUpdate('cascade');
$table->boolean('monday');
$table->boolean('tuesday');
$table->boolean('wednesday');
$table->boolean('thursday');
$table->boolean('friday');
$table->boolean('saturday');
$table->boolean('sunday');
$table->timestamps();
});
}
日程表模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Schedule extends Model
{
protected $table = 'schedule';
public function shift_worker()
{
return $this->hasMany('App\ShiftWorker');
}
public function zone()
{
return $this->hasMany('App\Zone');
}
}
日程表:
public function up()
{
Schema::create('schedule', function (Blueprint $table) {
$table->increments('id');
//Assign workers shift_worker to
$table->integer('shift_worker_id')->unsigned();
//Zone they can work
$table->integer('zone_id')->unsigned();
$table->string('day');
//Date the person can work
$table->date('date');
$table->timestamps();
});
}
答案 0 :(得分:1)
您对ShiftWorker模型的计划应该是belongsTo,因为您上面有shift_worker_id
public function shift_worker()
{
return $this->belongsTo('App\ShiftWorker');
}
该区域也应该是belongsTo关系
public function zone()
{
return $this->belongsTo('App\Zone');
}
不检查其他模型中是否存在错误关系,您需要通过documentation和教程
检查出来并澄清您的概念