Пример #1
0
 /**
  * 目的地游记列表
  * @param $destinationSlug string
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  */
 public function travelList($destinationSlug)
 {
     $data = Cache::remember("travel.destination.list.{$destinationSlug}", self::CACHE_TIME, function () use($destinationSlug) {
         $destinationInfo = $this->destination->where('slug', $destinationSlug)->first(['id', 'destination', 'seo_title', 'description', 'slug']);
         if (!$destinationInfo['id']) {
             abort(404);
         }
         $travelList = $destinationInfo->travel()->orderBy('begin_date', 'desc')->get();
         //定义了一对多关系,就是这么方便
         return ['travelList' => $travelList, 'destinationInfo' => $destinationInfo];
     });
     $travelList = $data['travelList'];
     $destinationInfo = $data['destinationInfo'];
     $seoSuffix = "_tanteng.me";
     return view('travel.destination', compact('travelList', 'destinationInfo', 'seoSuffix'));
 }
 /**
  * Handle the event.
  *
  * @param  TravelsWasUpdated  $event
  * @return void
  */
 public function handle(TravelsWasUpdated $event)
 {
     $travels = $event->travels;
     $destinationId = $travels['destination_id'];
     $endDate = $travels['end_date'];
     //游记结束时间
     $lastDate = Destination::where('id', $destinationId)->value('latest');
     if (strtotime($endDate) - strtotime($lastDate) >= 0) {
         Destination::where('id', $destinationId)->update(['latest' => date('Y-m-d H:i:s', strtotime($endDate))]);
     }
 }
Пример #3
0
 /**
  * @param Request $request
  * @return Article
  */
 public function doPost(Request $request)
 {
     // TODO: Implement doPost() method.
     /** @var \App\Models\ContentBase $newContent */
     $newContent = ContentBase::create(['content_type' => 0]);
     $newArticle = $newContent->article()->create($request->only($this->articleFields));
     if ($request->input('cover_id') != 0) {
         $newArticle['cover_id'] = $request->input('cover_id');
         $newArticle->save();
     }
     // get all checked-in destinations
     /** @var array $dest */
     $dest = array_map(function ($item) {
         $rs = Destination::where('des_name', $item->des_name)->first();
         return $rs;
     }, (array) json_decode($request->input('destinations')));
     foreach ($dest as $d) {
         /** @var Destination $d */
         $m = new ArticleDestination();
         $m->article_id = $newArticle->article_id;
         $m->des_id = $d->des_id;
         $m->save();
     }
     // get all tagged tags
     $tags = array_map(function ($item) {
         return Tag::where('tag_name', $item->tag_name)->first();
     }, (array) json_decode($request->input('tagnames')));
     /** @var Tag $t */
     foreach ($tags as $t) {
         $m = new ArticleTag();
         $m->article_id = $newArticle->article_id;
         $m->tag_id = $t->tag_id;
         $m->save();
     }
     return $newArticle;
 }