从另一个模型laravel api生成器获取数据

从另一个模型laravel api生成器获取数据,laravel,Laravel,我正在使用 我想从另一个模型中获取数据。插入帖子时,选择类别数据 PostController.php class PostController extends AppBaseController { /** @var PostRepository */ private $postRepository; /** @var CategoriesRepository */ private $categoriesRepository; function

我正在使用

我想从另一个模型中获取数据。插入帖子时,选择类别数据

PostController.php

class PostController extends AppBaseController
{

    /** @var  PostRepository */
    private $postRepository;

    /** @var  CategoriesRepository */
    private $categoriesRepository;

    function __construct(PostRepository $postRepo, CategoriesRepository $categoriesRepo)
    {
        $this->postRepository = $postRepo;
        $this->categoriesRepository = $categoriesRepo;
    }

    /**
     * Display a listing of the Post.
     *
     * @return Response
     */
    public function index()
    {
        $posts = $this->postRepository->paginate(10);
        $categories = $this->categoriesRepository->all('id', 'desc')->get();

        return view('posts.index')
            ->with('posts', $posts)
            ->with('categories', $categories);
    }
{!! Form::select('category_id', Categories::lists('name', 'id'), ['class' => 'form-control']) !!}
fields.blade.php

class PostController extends AppBaseController
{

    /** @var  PostRepository */
    private $postRepository;

    /** @var  CategoriesRepository */
    private $categoriesRepository;

    function __construct(PostRepository $postRepo, CategoriesRepository $categoriesRepo)
    {
        $this->postRepository = $postRepo;
        $this->categoriesRepository = $categoriesRepo;
    }

    /**
     * Display a listing of the Post.
     *
     * @return Response
     */
    public function index()
    {
        $posts = $this->postRepository->paginate(10);
        $categories = $this->categoriesRepository->all('id', 'desc')->get();

        return view('posts.index')
            ->with('posts', $posts)
            ->with('categories', $categories);
    }
{!! Form::select('category_id', Categories::lists('name', 'id'), ['class' => 'form-control']) !!}

我该怎么做?谢谢大家!

您应该在controller中创建列表并将其传递给视图

public function index()
    {
        $posts = $this->postRepository->paginate(10);
        $categories = $this->categoriesRepository->all('id', 'desc')->get();
        $categoryList = [ '' => '--select--' ] + $categories->lists('name', 'id'); 
        return view('posts.index')
            ->with('posts', $posts)
            ->with('categories', $categories)
            ->with('categoryList', $categoryList);
    }
并使用此变量生成select

{!! Form::select('category_id', $categoryList, ['class' => 'form-control']) !!}
我认为您应该在fields.blade.php中使用并传递类别列表数组。因此,它不会直接影响模板或生成器


每当您需要在任何视图中始终传递另一个模型的字段时,我认为您应该使用view composer。

将类别列表数组传递到当前刀片文件和使用view composer没有区别。这只是添加了可能不可重用的附加代码