Это довольно просто, так как это самая простая вещь, но я не знаю, чего мне не хватает:
Наличие модели под названием Site
Я использую Eloquent ORM, поэтому, когда я звоню (в контроллере)
$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();
Это работает, и я получаю правильный регистр.
Что я делаю не так? Какую часть документа я не получил?
РЕДАКТИРОВАТЬ:
Код модели можно проверить выше.
контроллер:
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;
}
}
}
РЕДАКТИРОВАТЬ 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
»после того, как я запустил проект и когда я применил миграцию, у меня не было включено мягкое удаление.
Очевидно, я сделал вторую ошибку, забыв включитьdeleted_at
‘быть обнуляемым, следовательно, все вставленные файлы имели неправильную метку времени (0000-00-00 …).
Fix:
Сделано обнуляемымdeleted_at
колонка.
Установить все неправильно «deleted_at
временные метки NULL
,
Ты не вернешь свою модель.
var_dump
печатает вывод и ничего не возвращает.
сделайте это вместо этого:
dd($oSite); // stands for var_dump and die - a helper method
а еще лучше, просто верните модель:
return $oSite; // will be cast to JSON string
Проверьте, что вы получаете Input::get('siteId')
правильно. если вы получаете его, то попробуйте преобразовать его в целое число, т.е.
$iSiteToDelete = intval(Input::get('siteId'));