我遇到了一个奇怪的问题,我将我的应用程序上传到服务器进行实时测试。我能够保存数据,但当我尝试使用Eloquent获取所有行时,没有返回任何内容。但是在我的localhost上工作得很好。
我试过了:
$xtras = Extra::with('category')->paginate(10);
和
$xtras = Extra::with('category')->get();
和
$xtras = Extra::all();
但是上面没有一个工作,当我返回$xtras
时,它总是一个空数组。
然后我决定尝试:
$xtras = DB::table('extras')->get();
这似乎工作正常,它返回数据。我检查了我的模型,似乎没有任何遗漏,因为我说它在我的本地主机上工作,而不是在我的服务器上。
这是我的额外课程:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Extra extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
protected $appends = ['checked'];
public function category() {
return $this->belongsTo('App\Models\ExtraCategory');
}
public function getCheckedAttribute() {
return false;
}
}
答案 0 :(得分:3)
使用SoftDeletes
时,除deleted_at
以外的NULL
列中的任何值都会告诉Laravel该记录已被删除&#34;,因此它赢得了&#39; t显示在正常的Eloquent查询中,除非您使用withTrashed()
范围。
了解您如何保存/插入数据,并确保将deleted_at
列设置为NULL
,以查找不应删除的记录。