-
Kamolpop Kuadsantia (ไอซ์) authored63390382
<?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);
}
}