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();