Php Laravel5:belongTomany(';\App\Article';)中的额外斜杠有什么作用?
在学习Laracasts Laravel 5教程时,导师没有提到第21集:多对多关系中名称空间引用[belongstomy('\App\Article')]前面的额外斜杠。它的意义是什么 如果我删除了多余的\,我会得到一个错误: 没有模型[App\Article]的查询结果 Article.phpPhp Laravel5:belongTomany(';\App\Article';)中的额外斜杠有什么作用?,php,laravel,namespaces,laravel-5.2,Php,Laravel,Namespaces,Laravel 5.2,在学习Laracasts Laravel 5教程时,导师没有提到第21集:多对多关系中名称空间引用[belongstomy('\App\Article')]前面的额外斜杠。它的意义是什么 如果我删除了多余的\,我会得到一个错误: 没有模型[App\Article]的查询结果 Article.php namespace App; use Illuminate\Database\Eloquent\Model; use Carbon\Carbon; class Article extends Mo
namespace App;
use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;
class Article extends Model
{
public function tags()
{
return $this->belongsToMany('App\Tag');
}
}
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tag extends Model
{
public function articles()
{
return $this->belongsToMany('\App\Article');
}
}
App/Tag.php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;
class Article extends Model
{
public function tags()
{
return $this->belongsToMany('App\Tag');
}
}
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tag extends Model
{
public function articles()
{
return $this->belongsToMany('\App\Article');
}
}
回答您的帖子标题: 与注释中提到的一样,\引用全局命名空间。不是应用程序名称空间 你也可以这样做
public function articles()
{
return $this->belongsToMany(Article::class);
}
如果你更清楚的话。这也给了单击类直接进入它的定义的机会。(在大多数IDE中)
回答您收到的错误 没有模型[App\Article]的查询结果 如果控制器中有类似的内容,则通常会产生此错误:
$article = Article::findOrFail($id)
如果找不到该文章,它将抛出该异常。这意味着在本例中传递的$id不存在。引用全局命名空间。看,为什么我应该为\App\Article使用全局命名空间,而不是为App\Tag或App\User使用全局命名空间?它们都使用相同的应用程序名称空间。