Nea*_*bfi 7 laravel eloquent laravel-5
如何withTrashed
应用于hasManyThrough
关系?
$this->hasManyThrough('App\Message', 'App\Deal')->withTrashed();
Run Code Online (Sandbox Code Playgroud)
返回
调用未定义的方法 Illuminate\Database\Query\Builder::withTrashed()
当我在做:
$messages = Auth::user()->messages()->with('deal')->orderBy('created_at', 'DESC')->get();`
Run Code Online (Sandbox Code Playgroud)
这是我的交易模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Deal extends Model
{
use SoftDeletes;
/* ... */
protected $dates = ['deleted_at'];
public function user() {
return $this->belongsTo('App\User');
}
public function messages() {
return $this->hasMany('App\Message'); // I've tried to put withTrashed() here, there is no error but it doesn't include soft deleting items.
}
}
Run Code Online (Sandbox Code Playgroud)
Sph*_*olt 13
对于所有这么晚才来的人来说,现在 Laravel 有一种本地方法可以做到这一点。
$this->hasManyThrough('App\Message', 'App\Deal')->withTrashedParents();
Run Code Online (Sandbox Code Playgroud)
这没有很好的记录,但可以在Illuminate\Database\Eloquent\Relations\HasManyThrough
小智 2
SoftDelete
抛出该错误是因为您在没有使用模型中的特征的情况下请求已删除消息的消息Message
。
我检查了hasManyThrough
相关代码后发现没有办法这样做,你应该玩一下。
前任:
通过消息来获取用户的交易
$deals = Auth::user()->deals()->withTrashed()->with('messages')->get();
foreach($deals as $deal) {
//Do your logic here and you can access messages of deal with $deal->messages
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1725 次 |
最近记录: |