Это довольно просто, как это самое основное, но я не знаю, что я пропускаю:Laravel Eloquent :: Find() возвращают NULL с существующим ID
Имея модель под названием Site
Я использую Красноречивый ОРМ, поэтому, когда я называю (в контроллере)
$oSite = Site::find(1)
, а затем
var_dump($oSite);
Возвращает значение NULL
.
Но когда я проверить базу данных, табличные 'сайты' на самом деле содержит следующий пункт:
id: 1
user_id: 1
name: test
В моей Site
модели У меня есть следующий код:
use Illuminate\Database\Eloquent\ModelNotFoundException;
Class Site extends Eloquent {
protected $table = 'sites';
protected $fillable = array ('user_id', 'name');
}
Вместо этого, если я соберу товар со следующим:
$oSite = DB::table('sites')
->where('id', 1)
->first();
Он работает, и я получаю правильный регистр.
Что я делаю неправильно? Какую часть документации я не получил?
EDIT:
код модели может быть проверено выше.
Контроллер:
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: (решаемые)
Реальная причина, почему не работает:
Я имел первоначально в моей модели кода следующие:
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');
}
Проблема Была ли я добавлена колонка 'deleted_at
' после того, как я начал проект, и когда я применил миграцию, у меня не было softdeleting. Очевидно, что я сделал вторую ошибку, забыв включить 'deleted_at
' как nullable, поэтому у всех вставленных входов была неправильная метка времени (0000-00-00 ...).
Fix:
Сделано обнуляемым колонка '
deleted_at
'.Установить все неправильные '
deleted_at
' отметки времени доNULL
.
Показать модель и метод контроллера вместо. –
@JarekTkaczyk отредактировал сообщение и добавил метод Contoller. Модель «Сайт» выше. – zedee
@JarekTkaczyk решается самостоятельно. Источником проблемы был связанный с БД. – zedee