我在模型UserTasks
到Review
模型
public function reviews()
{
return $this->hasMany(Review::class,'task_id');
}
我正在使用with
UserTasks::with('reviews');
我想在reviews
模型中使用访问者格式化UserTasks
关系输出
public function getReviewsAttribute($reviews)
{
// FILTER AND FORMAT RELATION OUTPUT
foreach ($reviews as &$review) {
if ($review['active'] == true) {
$review['cid'] = bcrypt($this->cid);
$reviews = [$review];
}
}
return $reviews;
}
不幸的是,这不起作用
使用with
加载的关系不关注访问者
我读到这几乎是不可能的,但也许有人知道使用访问器格式化加载关系的方法
答案 0 :(得分:2)
如果您希望 UserTasks 模型中的所有评论都可以尝试此操作
(function( $ ){
$.fn.deleteRecord = function(url, type) {
console.log('init', url, type, this, url.call(this, url, type));
this.click(function(){
//Confirm that this.each(function(){...}) is not required
console.log('onClick', url, type, this, url.call(this, url, type))
if (confirm("Are you sure you wish to delete this "+type+"?")) {
console.log('onConfirm', url, type, this, url.call(this, url, type))
var e=this;
$.ajax({
type:'DELETE',
url: url.call(this, url, type),
dataType: 'json',
success: function (rsp){
$(e).closest('tr').remove();
},
error: function (xhr) {
alert('Error: '+xhr.responseJSON.message);
}
});
}
})
return this;
};
})( jQuery );
$("#manual-list img.delete").deleteRecord(function(){'/1.0/manuals/'+$(this).closest('tr').data('id')},'manual');
通过public function getReviewsAttribute($reviews)
{
$reviews = $this->reviews;
foreach ($reviews as $rewiew) {
// DO SOMETHING WITH REVIEWS
}
return $reviews;
}
这将获得所有评论,您可以做任何您想做的事情。
不要忘记在模型顶部添加命名空间,例如使用Review;(提供命名空间)