Повторное использование контроллера / модели в Laravel - PullRequest
0 голосов
/ 27 июня 2019

Я хочу повторно использовать свой код, чтобы не повторять себя. Я сделал PostController и Post модель. Теперь я хочу создать страницу просмотра администратора, где я могу CRUD мои сообщения. Проблема здесь, как повторно использовать Postcontroller для моего администратора?

упомянул, что я новичок в Laravel


use Illuminate\Http\Request;

use App\Post;

class PostsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $posts = Post::all();

        return view('posts.post', compact('posts'));
    } ...


namespace App\Http\Controllers;

use App\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\PostsController;

class AdminController extends PostsController
{

    public function index()
    {
        $posts = Post::all();

        return view('admin.index', compact('posts'));
    }

}

1 Ответ

0 голосов
/ 27 июня 2019

Если вы хотите использовать один PostController для внешнего интерфейса и администратора, то вы должны проверить, что в данный момент вошли в охрану: admin или user для отображения:

use Illuminate\Http\Request;
use App\Post;
use Illuminate\Support\Facades\Auth;

  class PostsController extends Controller
  {

     public function index()
     {
        $posts = Post::all();
        @if(Auth::guard('admin')->check())
           return view('admin.index', compact('posts'));
        @elseif(Auth::guard('user')->check())
           return view('posts.post', compact('posts'));
        @endif
     } 
 }
...