PHP Fatal error: Call to undefined function Laravel tinker
PHP Fatal error: Call to undefined function Laravel tinker
我正在尝试建立两个表(角色和能力)之间的关系,但是当我 运行 函数 allowTo()
时,它说的是 undefined .
我试图清除缓存和配置,但什么也没做。
如果有人能提供帮助那就太好了,谢谢!
型号:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
protected $guarded = [];
public function abilities(){
return $this->belongsToMany(Ability::class)->withTimestamps();
}
public function allowTo($ability){
$this->abilities()->save($ability);
}
shell 上的 Tinker 环境:
>>> $user = App\User::find(7);
=> App\User {#3044
id: 7,
name: "Rebeca Tejedor",
email: "rebtej@gmal.com",
email_verified_at: null,
created_at: "2020-08-13 10:29:46",
updated_at: "2020-08-13 10:29:46",
}
>>> $role = Role::firstOrCreate(['name'=> 'lender']);
[!] Aliasing 'Role' to 'App\Role' for this Tinker session.
=> App\Role {#3041
id: 1,
name: "lender",
created_at: "2020-08-13 10:41:15",
updated_at: "2020-08-13 10:41:15",
}
>>> $ability = Ability::firstOrCreate(['name'=> 'edit_items']);
[!] Aliasing 'Ability' to 'App\Ability' for this Tinker session.
=> App\Ability {#3040
id: 1,
name: "edit_items",
created_at: "2020-08-13 10:43:34",
updated_at: "2020-08-13 10:43:34",
}
>>> $role = allowTo($ability)
错误:
PHP Fatal error: Call to undefined function allowTo() in Psy Shell code on line 1
The model
Tinker enviroment
您正在以这种方式使用您的关系:
$role = allowTo($ability);
虽然您应该像这样使用它:
$role->allowTo($ability);
在你的方法中:
public function allowTo($ability) {
$this->abilities()->attach($ability->id);
}
我正在尝试建立两个表(角色和能力)之间的关系,但是当我 运行 函数 allowTo()
时,它说的是 undefined .
我试图清除缓存和配置,但什么也没做。
如果有人能提供帮助那就太好了,谢谢!
型号:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
protected $guarded = [];
public function abilities(){
return $this->belongsToMany(Ability::class)->withTimestamps();
}
public function allowTo($ability){
$this->abilities()->save($ability);
}
shell 上的 Tinker 环境:
>>> $user = App\User::find(7);
=> App\User {#3044
id: 7,
name: "Rebeca Tejedor",
email: "rebtej@gmal.com",
email_verified_at: null,
created_at: "2020-08-13 10:29:46",
updated_at: "2020-08-13 10:29:46",
}
>>> $role = Role::firstOrCreate(['name'=> 'lender']);
[!] Aliasing 'Role' to 'App\Role' for this Tinker session.
=> App\Role {#3041
id: 1,
name: "lender",
created_at: "2020-08-13 10:41:15",
updated_at: "2020-08-13 10:41:15",
}
>>> $ability = Ability::firstOrCreate(['name'=> 'edit_items']);
[!] Aliasing 'Ability' to 'App\Ability' for this Tinker session.
=> App\Ability {#3040
id: 1,
name: "edit_items",
created_at: "2020-08-13 10:43:34",
updated_at: "2020-08-13 10:43:34",
}
>>> $role = allowTo($ability)
错误:
PHP Fatal error: Call to undefined function allowTo() in Psy Shell code on line 1
The model
Tinker enviroment
您正在以这种方式使用您的关系:
$role = allowTo($ability);
虽然您应该像这样使用它:
$role->allowTo($ability);
在你的方法中:
public function allowTo($ability) {
$this->abilities()->attach($ability->id);
}