PostController.php 3.02 KiB
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Post;
use App\Http\Requests\StorePostRequest;
use Auth;
class PostController extends Controller
    /**
     * Display a listing of the resource.
     * @return \Illuminate\Http\Response
    public function index()
        $posts = Post::with(['comments' => function ($query) {
            $query->orderBy('updated_at', 'desc');
        }])->orderBy('updated_at', 'desc')->take(20)->get();
        $user_id = Auth::User()->id;
        foreach ($posts as $post) {
            if ($post->likeByUsers) {
                foreach ($post->likeByUsers as $user) {
                    if ($user->id == $user_id) {
                        $post->likeable = false;
                        break;
            if (!isset($post->likeable)) {
                $post->likeable = true;
        return view('post.newsfeed', ['posts' => $posts]);
    /**
     * Show the form for creating a new resource.
     * @return \Illuminate\Http\Response
    public function create()
    /**
     * Store a newly created resource in storage.
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
    public function store(StorePostRequest $request)
        $req = $request->all();
        if (!empty($req['image'])) {
            $req['image'] = base64_encode(file_get_contents($req['image']));
        $data = array_filter($req);
        $post = Auth::User()->posts()->create($data);
        return response()->json($post, 201);