我遇到了laravel没有看到我的tags()方法在新条目上附加新标签的问题。当我尝试运行该方法并将标签附加到我的Tile模型时,我不断调用非对象上的成员函数。所有方法都回归了他们的关系。我按照文档中说的那样顺序执行了相同的命令。
控制器
$tile = \Tiles\Tile::find($tile_id);
$tile->tags()->attach($tag_array);
模型
<?php namespace Tiles;
use Illuminate\Database\Eloquent\Model;
class Tile extends Model {
/**
* The Tile table
* @var string
*/
protected $table = 'tiles';
/**
* Pivot table for tags
* @var string
*/
protected $pivot = 'tag_tile';
/**
* Get the tags associated with the given tile
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function tags() {
return $this->belongsToMany('Tiles\Tag', $this->pivot, 'tile_id', 'tag_id')->withTimestamps();
}
}
答案 0 :(得分:0)
试试吧
<强>模型强>
public function tags() {
return $this->belongsToMany('Tiles\Tag', $this->pivot, 'tag_id', 'tile_id')->withTimestamps();
}
答案 1 :(得分:0)
感谢您的帮助。我找到了解决方案。我在我的模型中创建了一个方法,并将每个方法推送到一个数组并将其提供给attach方法。它现在有效。