Jest to dość proste, jak jest to najbardziej podstawowa rzecz, ale nie wiem, co mi brakuje:laravel Eloquent :: find() NULL powrocie z istniejącym ID
Mając model o nazwie Site
Używam wymowny ORM, więc kiedy zadzwonić (w sterowniku)
$oSite = Site::find(1)
a następnie
var_dump($oSite);
Zwraca wartość NULL
.
Ale kiedy sprawdzić w bazie danych, w tabeli 'obiekty' faktycznie zawiera następujący element:
id: 1
user_id: 1
name: test
W moim Site
modelu Mam następujący kod:
use Illuminate\Database\Eloquent\ModelNotFoundException;
Class Site extends Eloquent {
protected $table = 'sites';
protected $fillable = array ('user_id', 'name');
}
Zamiast jeśli zbieram przedmiot z następującą pozycją:
$oSite = DB::table('sites')
->where('id', 1)
->first();
Działa i otrzymuję prawidłowy rejestr.
Co robię źle? Której części dokumentacji nie dostałem?
EDIT:
kod modelu można sprawdzić powyżej.
Controller:
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: (SOLVED)
prawdziwy powód dlaczego nie działa:
miałem pierwotnie w kodzie modelu następujące:
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');
}
Po dodaniu kolumny "deleted_at
" po uruchomieniu projektu i po zastosowaniu migracji nie włączono funkcji miękkiego wybierania. Oczywiście popełniłem drugi błąd, zapominając o włączeniu "deleted_at
", aby uzyskać zerowalność, dlatego wszystkie wkładki miały nieprawidłowy znacznik czasu (0000-00-00 ...).
Fix:
Wykonane pustych '
deleted_at
' kolumna.Ustaw wszystkie błędne znaczniki czasu "
deleted_at
" naNULL
.
Pokaż modelu i metody zamiast kontrolera. –
@JarekTkaczyk zredagował post i dodał metodę Contoller. Model "Strona" jest powyżej. – zedee
@JarekTkaczyk rozwiązany przez siebie. Źródłem problemu było powiązanie z bazą danych. – zedee