PostController.php 2.85 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 redirect(action('PostController@index'));
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } public function like($id) { $post = Post::find($id); $post->likeByUsers()->attach(Auth::User()->id); return response()->json(1); } public function unlike($id) { $post = Post::find($id); $post->likeByUsers()->detach(Auth::User()->id); return response()->json(1); } }