0
に複数のタグを挿入できませんでした。私は複数のタグでポストレコードを挿入したいので、ここで店@郵便で私のコードです:はLaravel
$post = Post::create(array(
'title' => $request->title,
'body' => $request->body,
'user_id' => Auth::id(),
));
if($post && $request->tags)
{
$tagNames = explode(',', $request->tags);
$tagIds = [];
foreach($tagNames as $tagName)
{
$tag = Tag::firstOrCreate(['name'=>$tagName]);
if($tag)
{
$tagIds[] = $tag->id;
}
}
$post->tags()->attach($tagIds);
}
が、それは私にエラー"Call to a member function attach() on null"
を与えます。私はmysqlでチェックされているときに、タグはすでにそこにあるが、私は私のpost_tagテーブル上のエントリを見つけることができません。ここに私のポストモデルです:
class Post extends Model
{
protected $fillable = ['user_id','title','slug','body','tags','category_id','featured'];
public function category()
{
return $this->belongsTo('App\Category');
}
public function tags()
{
$this->hasMany('App\Tag');
}
}
私はこのエラーを持っています。 "不明なメソッドを呼び出す\データベース\クエリ\ビルダー::アタッチ()" – Ying
'hasMany'ではなく' belongsToMany'であるべきです。 – Hamoud
、ありがとう。あなたはbelongsToManyであなたの答えを更新できますか?私はそれを選択します。 – Ying