如果我这是一个愚蠢的问题,请把我击倒,但我真的很难让这个all()
功能为我工作。它正在为我返回空列表。任何帮助将受到高度赞赏。我在通讯表中有两行
模型看起来像这样 -
<?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'
);
}
我在控制器中的电话是这样的 -
<?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'));
}
答案 0 :(得分:4)
0000-00-00 00:00:00
列中的任何值 - 甚至deleted_at
- 都会告诉Laravel项目已被删除。将该列的默认值更改为NULL
,否则新项目将在创建时标记为已删除。
如果您在迁移中使用它,$table->softDeletes()
架构功能会自动执行此操作。
答案 1 :(得分:2)
只要您使用SoftDeletingTrait
,全局范围就会应用于您的模型的每个查询,因此deleted_at
不是NULL
的所有记录都将被忽略了。
Illuminate\Database\Eloquent\SoftDeletingScope
:
public function apply(Builder $builder)
{
$model = $builder->getModel();
$builder->whereNull($model->getQualifiedDeletedAtColumn()); // <<-- this
$this->extend($builder);
}
将deleted_at
列的默认值更改为NULL
,并将现有记录更新为NULL
。
答案 2 :(得分:-1)
如果你确定新闻通讯是正确的表名,@ Ray说。 试试这个:
$newsLetters = DB::table('newsletters')->get();