ログインしているユーザと仕事に参加したいイベントとの関係を作る際に問題があります。 私は実際にロールのユーザーと同様のことをするために多くのステップを踏んでいます。しかし、ここで私はユーザがモデルユーザを使用しているので、イベントはモデルHomeModelと3つの他のモデルを使用してテーブルSaveEventに関係を結ぶため、いくつかの問題があります。 私のコードがあります。Laravel 5.4関係does not work第2パラメータを添付しない
モデルHomeModel
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class HomeModel extends Model
{
protected $table = 'events'; // you may change this to your name table
\t public $timestamps = true; // set true if you are using created_at and updated_at
\t protected $primaryKey = 'id'; // the default is id
/**
* Is it an all day event?
*
* @return bool
*/
public function isAllDay()
{
return (bool)$this->day;
}
}
モデルユーザー
:私は私の問題を解決するために2日間を無駄にしているため、誰かがどのようにそれを把握するために私に言うことを願って
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'lastname', 'name', 'phonenumber', 'email', 'password', 'user_id' ,
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function roles()
{
return $this->belongsToMany('App\Role', 'user_role', 'user_id', 'role_id');
}
public function hasAnyRole($roles)
{
if (is_array($roles)) {
foreach ($roles as $role) {
if ($this->hasRole($role)) {
return true;
}
}
} else {
if ($this->hasRole($roles)) {
return true;
}
}
return false;
}
public function hasRole($role)
{
if ($this->roles()->where('name', $role)->first()) {
return true;
}
return false;
}
public function events()
{
return $this->belongsToMany('App\SaveEvent')->withTimestamps();
}
}
+------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
| users_id | int(10) unsigned | NO | MUL | NULL | |
| events_id | int(10) unsigned | NO | MUL | NULL | |
+------------+------------------+------+-----+---------+----------------+
モデルSaveEvent
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class SaveEvent extends Model
{
\t
public function users()
{
return $this->belongsToMany('App\User');
}
}
表 コントローラZapisController
public function acceptEvent($id)
{
$events_id = HomeModel::find($id);
$users_id = new SaveEvent;
$users_id->users_id=Auth::id();
$users_id->save();
$users_id->events()->attach($events_id);
return redirect()->back();
}
を使用することができます:$ users_idがSaveEventのインスタンスであるため、$ users_id-> events()を参照してください。 – Indra
これはホメモデルですが、ホメモデルはイベント用のテーブルを使用していますが、これはどのようにアタッチするのかわかりません – Mariusz
は 'HomeModel'イベントですか?あなたのクラスはそうだと思われるが、それは意味をなさない。あなたがしていることを人々が理解できるように、分かりやすい名前を使用してください。いずれにせよhttps://laravel.com/docs/5。4 /雄弁な関係多面的な関係は助けになるかもしれない – apokryfos