Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 关系在Laravel Tinker中起作用,但在controller中不起作用_Php_Laravel_Eloquent - Fatal编程技术网

Php 关系在Laravel Tinker中起作用,但在controller中不起作用

Php 关系在Laravel Tinker中起作用,但在controller中不起作用,php,laravel,eloquent,Php,Laravel,Eloquent,我建立了一个多个关系,并希望在我的php代码中返回该关系,但当我在tinker中运行相同的代码时,由于某种原因,该关系仍然有效。我错过了什么 //菲尔马 public function auftraege() { return $this->belongsToMany("Auftrag", 'auftraege_firma'); } //奥夫特拉格 public function firmen() { return $this->belongsToMan

我建立了一个多个关系,并希望在我的php代码中返回该关系,但当我在tinker中运行相同的代码时,由于某种原因,该关系仍然有效。我错过了什么

//菲尔马

public function auftraege()
{
  return $this->belongsToMany("Auftrag", 'auftraege_firma');
}
//奥夫特拉格

public function firmen()
{
  return $this->belongsToMany("Firma", 'auftraege_firma');
}
//在tinker工作

$firma = App\Firma::first();
$firma->auftraege
//在php控制器中不工作

$firma = App\Firma::first();
return $firma->auftraege

看到你的控制器代码,我只注意到两件事。按如下方式更改控制器代码:

$firma = \App\Firma::first();
return $firma->auftraege;
public function auftraege()
{
  return $this->belongsToMany(Auftrag::class, 'auftraege_firma');
}

public function firmen()
{
  return $this->belongsToMany(Firma::class, 'auftraege_firma');
}
App
名称空间之前缺少
\
,在return语句中也缺少分号

请同时更改以下关系:

$firma = \App\Firma::first();
return $firma->auftraege;
public function auftraege()
{
  return $this->belongsToMany(Auftrag::class, 'auftraege_firma');
}

public function firmen()
{
  return $this->belongsToMany(Firma::class, 'auftraege_firma');
}

它在tinker中工作的原因是,默认情况下,tinker为当前tinker会话将名称空间设置为
App
。这就是为什么即使您没有指定
App
名称空间,tinker仍然能够解析正确的名称空间。

查看您的控制器代码,我只能注意到两件事。按如下方式更改控制器代码:

$firma = \App\Firma::first();
return $firma->auftraege;
public function auftraege()
{
  return $this->belongsToMany(Auftrag::class, 'auftraege_firma');
}

public function firmen()
{
  return $this->belongsToMany(Firma::class, 'auftraege_firma');
}
App
名称空间之前缺少
\
,在return语句中也缺少分号

请同时更改以下关系:

$firma = \App\Firma::first();
return $firma->auftraege;
public function auftraege()
{
  return $this->belongsToMany(Auftrag::class, 'auftraege_firma');
}

public function firmen()
{
  return $this->belongsToMany(Firma::class, 'auftraege_firma');
}

它在tinker中工作的原因是,默认情况下,tinker为当前tinker会话将名称空间设置为
App
。这就是为什么即使您没有指定
App
名称空间,tinker也能够解析正确的名称空间。

很乐意提供帮助。如果这解决了你的问题,那么接受答案。这有助于将问题标记为“已解决”。你是救世主。谢谢:)很乐意帮忙。如果这解决了你的问题,那么接受答案。这有助于将问题标记为“已解决”。你是救世主。谢谢:)