任何人都可以帮助我获得不良答复。非常感谢您的帮助。谢谢。 这是我的新闻模型
<?php
namespace Modules\Newsletter\Entities;
use Brexis\LaravelWorkflow\Traits\WorkflowTrait;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
/**
* This is for storing news
* Class News
* @package Modules\Newsletter\Entities
*/
class News extends Model {
use WorkflowTrait;
protected $table = 'news_info';
protected $fillable = [
'title', 'header', 'description', 'status', 'created_by', 'media_url', 'media_thumbnail', 'media_type'
];
public function newsLetterSentOn() {
return $this->belongsToMany(Newsletter::class,'news_newsletters','news_id','newsletter_id')
->whereHas('scheduleTime', function($q){
$q->where('schedule_time', '<', date("Y-m-d h:i:s", time()));
})->join('newsletter_schedule_timings', 'newsletter_schedule_timings.newsletter_id', '=', 'newsletters.id')
->select(
'newsletter_schedule_timings.schedule_time as st_time')
->where('schedule_time', '!=',NULL)
->orderBy('schedule_time', 'asc')->limit(1);
}
}
这是我的通讯模型
<?php
namespace Modules\Newsletter\Entities;
use Illuminate\Database\Eloquent\Model;
class Newsletter extends Model
{
protected $table = 'newsletters';
protected $hidden = ['pivot'];
protected $fillable = [];
public function newsSentOn() {
return $this->belongsToMany(News::class,'news_newsletters','newsletter_id','news_id');
}
public function scheduleTime()
{
return $this->belongsTo(ScheduleTime::class,'id','newsletter_id');
}
}
这是我的资源数组 公共函数toArray($ request){
$core =$this->core=NewsService::getInstance()->getCore();
$path = $this->media_url;
return [
'news_id' => $this->id,
'title' => $this->title,
'header' => $this->header,
'description' => $this->description,
'status' => $this->status,
'media_type' =>$this-> media_type,
'media_thumbnail' => $this->media_thumbnail,
'review_id' => $this->id,
'media_url' => $this->media_type == 2 ? $this->media_url : $core->getS3Parameter($path), // here 2 is for stock images
'newsletter' => $this->newsLetterSentOn,
];
}
这是控制器方法
public function getNewsByStatus($status){ // get all news of a given status
if($status == 'validated'){
return News::with('newsLetterSentOn')->where('status','=','validated')
->orWhere('status','=','sent')->first();
}else{
return News::where('status',$status)->get();
}
}
这是我得到的答复
{
"data": {
"news_id": 181,
"title": "apple",
"header": "Todays Headlinegg",
"description": "Corona Virus spreds Globaly",
"status": "sent",
"media_type": 1,
"media_thumbnail": null,
"review_id": 181,
"media_url": null,
"newsletter": [
{
"st_time": "2019-04-08 20:15:00"
}
]
},
"status": true
我想得到类似的回复-
{
"news_id": 181,
"title": "apple",
"header": "Todays Headlinegg",
"description": "Corona Virus spreds Globaly",
"status": "sent",
"media_type": 1,
"media_thumbnail": null,
"review_id": 181,
"media_url": null,
"review_reaction": [],
"newsletter": "2019-04-08 20:15:00",
},
任何人都可以帮助我获得上述答复。非常感谢您的帮助。谢谢。