예제 #1
0
 public function run()
 {
     DB::table('articles')->delete();
     factory(Article::class, 250)->make()->each(function ($article) {
         $article->author()->associate(User::all()->random(1));
         $article->category()->associate(Category::all()->random(1));
         $article->save();
         $tags = Tag::all()->random(rand(1, 10));
         if ($tags instanceof Collection) {
             foreach ($tags as $tag) {
                 $article->tags()->attach($tag->id);
             }
         } else {
             $article->tags()->attach($tags->id);
         }
     });
 }
예제 #2
0
 /**
  * @param ArticleRequest $request
  * @param Article|null   $article
  * @return Article            $article
  */
 private function buildArticle(ArticleRequest $request, $article = null)
 {
     $articleData = $request->all();
     $articleData['slug'] = str_slug($articleData['title']);
     if (is_null($article)) {
         $articleData['published_at'] = Carbon::now();
         $articleData['state'] = 'online';
         $article = Auth::user()->articles()->create($articleData);
     } else {
         $article->update($articleData);
     }
     if ($request->has('tags')) {
         foreach ($articleData['tags'] as $key => $tag) {
             $articleData['tags'][$key] = Tag::firstOrCreate(['name' => $tag, 'slug' => str_slug($tag)])->id;
         }
         $article->tags()->sync($articleData['tags']);
     }
     return $article;
 }
예제 #3
0
 /**
  * Search a tag in the database
  * @param string $search String to search
  * @param $filters
  * @return mixed
  */
 public function search($search, $filters = null)
 {
     $quantity = isset($filters['quantity']) ? $filters['quantity'] : 10;
     return Tag::where('name', 'like', '%' . $search . '%')->take($quantity)->get();
 }