/ / Lumen Model :: find () ne sélectionne pas la clé primaire - php, mysql, laravel, éloquent, lumen

Lumen Model :: find () ne sélectionne pas la clé primaire - php, mysql, laravel, éloquent, lumen

Je veux sélectionner un article de la table board par sa "PK qui est boardId. Cependant, le Board::find(2) ou Board::find(1) renvoie tous les éléments, quel que soit le paramètre donné.

J'ai le tableau suivant:

table

Avec le modèle de lumen correspondant:

class Board extends CustomModel
{

protected $fillable = [
"userId", "boardName", "private"
];

protected $primaryKey = "boardId";

protected $table = "board";
}

Le modèle personnalisé est:

abstract class CustomModel extends Model
{
use Authenticatable, Authorizable;

const CREATED_AT = "createdAt";
const UPDATED_AT = "updatedAt";

}

L'appeler avec:

$boardId = 2;
return Board::find($boardId)->get();

Aussi essayé:

$boardId = 2;
return Board::find($boardId)->first();

Et les suivants:

$boardId = 2;
return Board::find($boardId)->toSql();

Résultats: select * from "board". Donc il n'y a pas where boardId = ? ou quelque chose, qui est le problème. Qu'est-ce que je fais mal ?

Je suis sous PHP 7.2.0 et Lumen 5.5.2. Les requêtes sur d’autres modèles fonctionnent bien.

Réponses:

4 pour la réponse № 1

Vous avez dit que vous l'appelez avec get():

return Board::find($boardId)->get();

Mais vous ne devriez pas ajouter get() car il retournera une collection de tous les objets. Faites juste ceci:

return Board::find($boardId);

0 pour la réponse № 2

Effacez simplement la méthode -> get (), cela fonctionnera pour vous.

J'espère être utile