Eloquent ORM all() 没有返回任何东西
Eloquent ORM all() not returning anything
如果这是一个愚蠢的问题,请打倒我,但我真的很难让这个 all()
功能为我工作。它正在为我返回空列表。任何帮助将不胜感激。我在时事通讯中有 2 行 table
模型看起来像这样 -
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class Newsletters extends Eloquent {
//use UserTrait, RemindableTrait;
use SoftDeletingTrait; // <-- Use This Insteaf Of protected $softDelete = true;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'newsletters';
/**
* The attributes excluded from the model's JSON form.
*
* @var array */
protected $guarded = array('newsletterId');
protected $fillable = array('name', 'subject','from_email','from_name');
public static $rules = array(
'name' => 'required|min:5',
'subject' => 'required|min:5',
'from_email' => 'required|email',
'from_name' => 'required'
);
}
我在controller中的调用是这样的-
<?php
class newslettersController extends \BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
//$newsletters = Newsletters::paginate(3);
$newsletters = Newsletters::all();
echo $newsletters;exit();
return View::make('newsletters.index', compact('newsletters'));
}
deleted_at
列中的任何值 - 甚至 0000-00-00 00:00:00
- 都会告诉 Laravel 该项目已被删除。将该列的默认值更改为 NULL
,否则新项目将在创建时标记为已删除。
如果您在迁移中使用 $table->softDeletes()
架构功能,它会自动执行此操作。
一旦您使用 SoftDeletingTrait
,全局范围将应用于您模型的每个查询,因此 deleted_at
是 而不是 NULL
[ 的所有记录=25=] 将被忽略。
Illuminate\Database\Eloquent\SoftDeletingScope
:
public function apply(Builder $builder)
{
$model = $builder->getModel();
$builder->whereNull($model->getQualifiedDeletedAtColumn()); // <<-- this
$this->extend($builder);
}
将 deleted_at
列的默认值更改为 NULL
并将现有记录也更新为 NULL
。
如果您确定时事通讯是正确的 table 名称,如@Ray 所说。
试试这个:
$newsLetters = DB::table('newsletters')->get();
如果这是一个愚蠢的问题,请打倒我,但我真的很难让这个 all()
功能为我工作。它正在为我返回空列表。任何帮助将不胜感激。我在时事通讯中有 2 行 table
模型看起来像这样 -
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class Newsletters extends Eloquent {
//use UserTrait, RemindableTrait;
use SoftDeletingTrait; // <-- Use This Insteaf Of protected $softDelete = true;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'newsletters';
/**
* The attributes excluded from the model's JSON form.
*
* @var array */
protected $guarded = array('newsletterId');
protected $fillable = array('name', 'subject','from_email','from_name');
public static $rules = array(
'name' => 'required|min:5',
'subject' => 'required|min:5',
'from_email' => 'required|email',
'from_name' => 'required'
);
}
我在controller中的调用是这样的-
<?php
class newslettersController extends \BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
//$newsletters = Newsletters::paginate(3);
$newsletters = Newsletters::all();
echo $newsletters;exit();
return View::make('newsletters.index', compact('newsletters'));
}
deleted_at
列中的任何值 - 甚至 0000-00-00 00:00:00
- 都会告诉 Laravel 该项目已被删除。将该列的默认值更改为 NULL
,否则新项目将在创建时标记为已删除。
如果您在迁移中使用 $table->softDeletes()
架构功能,它会自动执行此操作。
一旦您使用 SoftDeletingTrait
,全局范围将应用于您模型的每个查询,因此 deleted_at
是 而不是 NULL
[ 的所有记录=25=] 将被忽略。
Illuminate\Database\Eloquent\SoftDeletingScope
:
public function apply(Builder $builder)
{
$model = $builder->getModel();
$builder->whereNull($model->getQualifiedDeletedAtColumn()); // <<-- this
$this->extend($builder);
}
将 deleted_at
列的默认值更改为 NULL
并将现有记录也更新为 NULL
。
如果您确定时事通讯是正确的 table 名称,如@Ray 所说。 试试这个:
$newsLetters = DB::table('newsletters')->get();