私は基本的にLaravelの新機能です。私はこれを続ける"配列のメンバ関数roles()を呼び出す"エラー。メンバーへの呼び出しroles()on array(Laravel 5.3)
私は多くの関係を持つデータベースにユーザーの役割を追加しようとしています。私はどこでもこの答えを探しましたが、結果は私の関数にreturn文を追加する必要があると言いました。 しかし私はすでに返信文を持っていますが、それでも動作しません。
これは私のコードです。
User.phpモデル
<?php
class User extends Model implements Authenticatable
{
use \Illuminate\Auth\Authenticatable;
protected $primaryKey = 'user_id';
protected $fillable = [
'user_fname', 'user_mname', 'user_lname', 'user_ptitle', 'user_sex', 'user_civilstatus', 'user_nationality', 'user_bday', 'user_bplace', 'user_address', 'user_mobile', 'user_landline'
];
protected $hidden = [
'password', 'remember_token',
];
public function login(){
return $this->hasOne('App\Login', 'user_id');
}
public function registercoop(){
return $this->hasOne('App\CoopDetails', 'coop_id');
}
public function listcomaker(){
return $this->hasMany('App\LoanCoMaker', 'user_id');
}
public function roles(){
return $this->hasMany('App\Role', 'role_users', 'user_id', 'role_id');
}
}
Role.phpモデル
<?php
class Role extends Model
{
public function users(){
return $this->belongsToMany('App\User','role_users', 'role_id', 'user_id');
}
}
データベースへの保存は、私は実際にそれが最初の時間を仕事作った
$user=[
'user_email' => $email,
'password' => $password
];
$count = DB::table('users')
->where('created_at', '>=', 'CURRENT_DATE')
->count(); //Count entries for that day.
$year = Carbon::now()->year;
$month = Carbon::now()->month;
if ($count<100 && $count>10){
$count="0".$count;
$user_id = $year.$month.$count;
}
else if ($count<10){
$count="00".$count;
$user_id = $year.$month.$count;
}
else{
$user_id = $year.$month.$count;
}
$user->roles()->attach($user_superadmin);
P.Sをたまたま私のAccountController.phpから
行。私は古いモデルのUserType.phpをRole.phpに変更し、マイグレーション、シーダー、コントローラー、モデルなどを更新し、正常に動作しなくなりました。
私が間違っていることを指摘してくれる人がいますか?最初にユーザーを作成する必要があり
Role.phpとUser.php全体を貼り付けることはできますか? –
'attach'はidの代わりにobjectの代わりにidの配列を取る! –
@RobinDirksen写真を添付しました。見てください。 – Eggnog654