我一直收到这个错误:
未定义的变量:sampleRecord
在工作时处理这块代码时,我的多维数据集集群中没有人可以看到问题。
这是构造函数:
public function __construct(SamplesForm $samplesForm, SamplePartNumberForm
$samplePartNumberForm,sampleRepository $sampleRepository,
SamplePartNumberRepository
$samplePartNumberRepository, SamplePartNumberRecord
$samplePartNumberRecord, SampleRecord $sampleRecord)
{
$this->samplesForm = $samplesForm;
$this->samplePartNumberForm = $samplePartNumberForm;
$this->sampleRepository = $sampleRepository;
$this->samplePartNumberRepository = $samplePartNumberRepository;
$this->samplePartNumberRecord = $samplePartNumberRecord;
$this->sampleRecord = $sampleRecord;
}
以下是导致错误的块:
public function show($sample_id)
{
return View::make('samples.show')->with([
$sampleRecord->sampleRepository->find($sample_id),
$sampleRecord->getSamplePartNumberRecord,
]);
}
答案 0 :(得分:2)
PHP类中的实例变量必须始终合格:
class Foo {
private $bar;
function baz () {
return $bar; // bad - undefined lexical variable
return $this->bar; // correct
}
}
因此,当你引用$sampleRecord
它试图使用未定义的词汇变量而不是你的意思$this->sampleRecord
时,实例变量。
答案 1 :(得分:0)
啊,我想我看到你所处的泡菜 - 实际上是两个:
第一个问题是$sampleRecord
不是本地的,因此应该引用实例属性,即$this->sampleRecord
。
第二个问题是,猜测时,$sampleRepository
不是$sampleRecord
上的属性,因为它是当前类的属性。请尝试以下方法:
public function show($sample_id)
{
return View::make('samples.show')->with([
$this->sampleRepository->find($sample_id),
$this->sampleRecord->getSamplePartNumberRecord,
]);
}
顺便说一下,你的构造函数有六个参数,通常被认为太多了。作为一项单独的任务,重建这个可能是值得的。