Искам да избера елемент от таблицата board
от него е PK, което е boardId
, Както и да е Board::find(2)
или Board::find(1)
връща всички елементи, независимо от зададения параметър.
Имам следната таблица:
Със съответния модел на лумена:
class Board extends CustomModel
{
protected $fillable = [
"userId", "boardName", "private"
];
protected $primaryKey = "boardId";
protected $table = "board";
}
Персонализираният модел е:
abstract class CustomModel extends Model
{
use Authenticatable, Authorizable;
const CREATED_AT = "createdAt";
const UPDATED_AT = "updatedAt";
}
Извикване с:
$boardId = 2;
return Board::find($boardId)->get();
Също така опитахме:
$boardId = 2;
return Board::find($boardId)->first();
И следното:
$boardId = 2;
return Board::find($boardId)->toSql();
Се завръща: select * from "board"
, Така че няма where boardId = ?
или нещо, което е проблемът. Какво правя погрешно?
Работя с PHP 7.2.0 и Lumen 5.5.2.Запитванията на други модели работят добре.
Отговори:
4 за отговор № 1Вие казахте, че го наричате get()
:
return Board::find($boardId)->get();
Но не трябва да добавяте get()
защото ще върне колекция от всички обекти. Просто направете това:
return Board::find($boardId);
0 за отговор № 2
Просто изтрийте метода -> get (), който ще работи за вас
Надявам се да е полезно