Il y a eu beaucoup de problèmes à ce sujet mais je suis la procédure exacte pour résoudre ce problème comme décrit dans les autres questions SO connexes mais je reçois la même erreur.Colonne non trouvée: 1054 Colonne inconnue 'id' dans 'where clause' - Laravel
Boutique
public function products()
{
return $this->hasMany('App\Product');
//->withTimestamps();
}
Produit
public function shop()
{
return $this->belongsTo('App\Shop');
//->withTimestamps();
}
Voici comment mon schéma ressemble
Schema::create('products', function (Blueprint $table) {
$table->increments('product_id');
$table->integer('shop_id')->unsigned()->nullable();
$table->foreign('shop_id')->references('id')->on('shops');
$table->timestamps();
);
Controller
$products = new Product(array(
'name' => $request->('name');
));
$shop->products()->save($products);
Après avoir soumis mes données de formulaire dans la table des produits, je reçois une erreur Column not found: 1054 Unknown column 'id' in 'where clause'
. Laravel par défaut semble prendre id
par défaut comme ma clé primaire, mais c'est product_id
.
Dans mon modèle, j'ai spécifié protected $primaryKey = 'product_id'
et cela ne résoudrait pas mon problème. Qu'est-ce que je fais différemment?
pourriez-vous afficher la requête que vous faites dans le contrôleur? –
La table 'products' n'a pas de colonne' id', elle a 'product_id'. '-> where ('product_id', '=', ...)' et non '-> where ('id', '=', ...)' – ljubadr
@RusbenGuzman mis à jour ... les magasins aux produits est un une à plusieurs relation –