美好的一天!
只是想问一下class
中<{> 1}}和使用 使用的区别?我也用Google搜索了,但我的问题与答案不符。
示例:
class
答案 0 :(得分:4)
定义类时,它只能访问其名称空间中的其他类。例如,您的控制器在以下命名空间中定义。
namespace App\Http\Controllers\Auth;
因此,要使用其他类,您需要从它们自己的命名空间中导入它们,以便您可以访问它们。 e.g:
use Illuminate\Foundation\Auth\ThrottlesLogins;
如果你有javascript ES6经验,它有点类似import
。导入包时,默认名称空间为/node_modules
。要导入您自己的文件,您需要通过提供类似
import '../containers/index.js'
回到Laravel。现在您已经导入了ThrottlesLogins
,这实际上是一个特征,现在在类use
内部,它将公开所有方法。
use Illuminate\Foundation\Auth\ThrottlesLogins; //import
public class AuthController
{
use ThrottlesLogins; //exposes all the methods inside
...
public function login()
{
...
//login failed
$this->incrementLoginAttempts(); //defined in ThrottlesLogins Trait
}
}
从上面的示例中,您可以直接访问incrementLoginAttempts()
,ThrottlesLogins
定义了node -v
v7.8.0
。