Я использую Laravel 5.6.
У меня есть таблица Product и таблица ProductImages, где ProductImages имеет внешний ключ product_id.
На моем контроллере я без проблем сохранил свой продукт, а затем хочу сохранить одно или несколько изображений (ProductImages) на этом продукте.
Я делаю так:
$produto = Produto::find($produtoCriado);
$produto->imagens()->save(['url_imagem' => urlImagemExtra]);
Но тогда я получаю: Метод Illuminate \ Database \ Eloquent \ Collection :: imagens не существует.
Модель Produto:
class Produto extends Model {
protected $table = 'produto';
protected $fillable = [
'nome', 'descricao_curta', 'descricao_longa', 'tags',
'url_imagem_principal', 'feito_por', 'feito_em', 'altura',
'largura', 'material'
];
/***
* Retorna as imagens relacionadas ao produto
*/
public function imagens()
{
return $this->hasMany('App\ProdutoImagem');
}
}
Модель ProdutoImagem:
class ProdutoImagem extends Model {
protected $table = 'produto_imagem';
protected $fillable = [
'url_imagem'
];
/***
* Busca o Produto relacionado a essas imagens
*/
public function produto()
{
return $this->belongsTo('App\Produto');
}
}
Продукт сохраняется без проблем, но когда я пытаюсь добавить PrudutoImagem, я получаю сообщение об ошибке.