gpt4 book ai didi

laravel - Get onlyTrashed() 在查询构建器中不存在

转载 作者:行者123 更新时间:2023-12-04 01:31:04 25 4
gpt4 key购买 nike

我试图从表消息中获取垃圾行:

public function trash() {
return $this->onlyTrashed()
->where('user_id', '=', $this->_u)
->orWhere('receiver', '=', $this->_u)
->orderBy('deleted_at', 'desc')->get();
}

我收到此错误:

Method Illuminate\Database\Query\Builder::onlyTrashed does not exist.

我检查了 Builder 和 SoftDeletes 文件的 onlyTrashed 方法,但它不存在,我如何从消息表中查找垃圾邮件?

我想到的唯一方法是创建不返回 delete_at 不为 null 的消息的方法,并且 fortraded 只返回那些不为 null 的消息。但我仍然想知道为什么这不起作用,因为它在这个 url 的文档中:

https://laravel.com/docs/5.6/eloquent#soft-deleting

更多信息

是的,它在模型内部,是的,我添加了使用 SoftDeletes:
use Illuminate\Database\Eloquent\SoftDeletes; - 在上面
use SoftDeletes;开课后

让我在这里粘贴整个模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\DB;

class Messages extends Model
{

use SoftDeletes;

protected $fillable = [
'user_id', 'subject', 'text', 'receiver'
];

public $_u;

protected $dates = ['deleted_at'];

public function __construct() {
$this->_u = auth()->user()->user_id; //or some id as string
}

public function trash() {
return $this->onlyTrashed()
->where('user_id', '=', $this->_u)
->orWhere('receiver', '=', $this->_u)
->orderBy('deleted_at', 'desc')->get();
}

public static function trashed() {
return self::onlyTrashed();
}
}

Controller 具有:

public function __construct() {
$this->middleware('auth');
}

public function index($field = 'trash') {
if ($field !== "new") {
$messages = (new Msg)->$field();
$user = auth()->user();
return view('pages.messages', compact('messages', 'user'));
}
return view('pages.messages.new', compact('messages', 'user'));
}

我也尝试调用 static 并尝试从 开始修补匠 并且仍然不断得到:

onlyTrashed() 不存在

最佳答案

您必须调用父构造函数:

public function __construct() {
parent::__construct();

$this->_u = auth()->user()->user_id;
}

关于laravel - Get onlyTrashed() 在查询构建器中不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51725788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com