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:
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 № 1Vous 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