Я использую Eloquent в Laravel.У меня есть базовый контроллер и модель, и я делаю это в своем контроллере:
class TeamController extends Controller
{
public function getTeam($id)
{
// $id is primary key
// echo $id displays 1
// id 1 exists in database
// Doesn't work, returns empty json object
return response()->json(Team::find($id));
// Works, returns all teams as expected
return response()->json(Team::all());
}
}
Как описано в комментариях к коду, Team::find($id)
возвращает пустой объект Json, но Team::all()
возвращаетвсе как и ожидалось.Team::where('name', 'Test Team')
также не работает, даже если они есть в базе данных.
Я уже некоторое время смотрю на это, но я, должно быть, упускаю что-то простое - есть ли у кого-нибудь какие-либо идеи относительно того, что может бытьчто происходит здесь?
Редактировать: вот модель команды:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Team extends Model
{
protected $table = 'teams';
// public static function __callStatic($method, $args)
// {
// if ($method == 'findValidById') {
//
// $team = Team::find($args[0]);
//
// if ($team)
// {
// return $team;
// }
// throw new \Exception('The specified team does not exist', 400);
// }
// }
protected $casts = [
'admin_id' => 'int'
];
protected $fillable = [
'name',
'logo',
'admin_id',
'team_key'
];
}
А вот таблица, если она поможет: Таблица