在阅读Laracasts Laravel 5 Tutorial时,导师在第21集:多对多关系中的命名空间参考[belongsToMany('\ App \ Article')]之前没有提到额外的斜杠。它有什么意义?
如果我删除了额外的\,我收到错误:
模型[App \ Article]没有查询结果。
Article.php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;
class Article extends Model
{
public function tags()
{
return $this->belongsToMany('App\Tag');
}
}
应用/ Tag.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tag extends Model
{
public function articles()
{
return $this->belongsToMany('\App\Article');
}
}
答案 0 :(得分:2)
关于帖子标题的回答:
如评论中所述,\指的是全局命名空间。不是App命名空间。
您也可以
public function articles()
{
return $this->belongsToMany(Article::class);
}
如果你对此更清楚。这也有机会点击课程直接进入它的定义。(在大多数IDE中)
关于您收到的错误的答案
模型[App \ Article]没有查询结果。
如果您的控制器中有类似的内容,则主要会创建此错误:
$article = Article::findOrFail($id)
如果找不到该文章,它将抛出该异常。这意味着在这种情况下,传递的$ id不存在。