Laravel Eloquent :: Find () retornando NULL com um ID existente
É bem direto, pois é a coisa mais básica, mas não sei o que estou perdendo:
Ter um modelo chamadoSite
Estou usando o ORM Eloquent, então quando ligo (em um controlador)
$oSite = Site::find(1)
e depois
var_dump($oSite);
Retorna um valor deNULL
.
Mas quando eu checo o banco de dados, a tabela 'sites' na verdade contém o seguinte item:
id: 1
user_id: 1
name: test
No meuSite
modelo Eu tenho o seguinte código:
use Illuminate\Database\Eloquent\ModelNotFoundException;
Class Site extends Eloquent {
protected $table = 'sites';
protected $fillable = array ('user_id', 'name');
}
Em vez disso, se eu reunir o item com o seguinte:
$oSite = DB::table('sites')
->where('id', 1)
->first();
Funciona e eu recebo o registro correto.
O que estou fazendo de errado? Que parte da documentação não recebi?
EDITAR:
O código do modelo pode ser verificado acima.
Controlador:
use Illuminate\Support\Facades\Redirect;
class SiteManagementController extends BaseController {
...
public function deleteSite()
{
if (Request::ajax())
{
$iSiteToDelete = Input::get('siteId');
$oSite = Site::find($iSiteToDelete);
return var_dump($oSite);
}
else
{
return false;
}
}
}
EDIT 2: (RESOLVIDO)
Verdadeira razão pela qual não estava funcionando:
eu tinhaoriginalmente no meu código de modelo, o seguinte:
use Illuminate\Database\Eloquent\SoftDeletingTrait;
use Illuminate\Database\Eloquent\ModelNotFoundException;
Class Site extends Eloquent {
protected $table = 'sites';
use SoftDeletingTrait;
protected $dates = ['deleted_at'];
protected $fillable = array('user_id', 'name');
}
Problema foi adicionar um 'deleted_at
'depois que iniciei o projeto e quando apliquei migrações, não havia a exclusão eletrônica ativada. Obviamente, cometi um segundo erro, esquecendo de ativar 'deleted_at
'para ser anulável, portanto, todas as inserções foram registradas com um carimbo de data / hora errado (0000-00-00 ...).
Consertar:
Tornado anulável 'deleted_at
'coluna.
Definir tudo errado 'deleted_at
'timestamps toNULL
.