Laravel: Как получить внешний ключ и передать его контроллеру - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь получить идентификатор из таблицы категорий, который является внешним ключом в таблице статей, и помещаю его в скрытое поле в представлении при создании статьи. Затем я хочу передать его контроллеру статей.Я попытался, но не знал, как это сделать.Отображаемая ошибка: «Слишком мало аргументов для функции App \ Http \ Controllers \ ArticleController :: create (), 0 передано и ожидается ровно 1»

1 Ответ

1 голос
/ 04 апреля 2019

Не передавайте ничего в методе создания, вместо этого отобразите раскрывающийся список категорий в представлении статьи, чтобы вы могли выбрать любую категорию, а затем получите идентификатор категории из этого раскрывающегося списка в методе вашего магазина.

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Category;


class ArticleController extends Controller
{
/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */

public function index()
{
}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function create()
{
  $categories = Category::pluck('title', 'id')
  return view('article.create', ['categories' => $categories]);
}

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
  $input = $request->all();
  Article::create($input);
  return redirect('article');
}

/**
 * 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)
{

}

}

И по вашему мнению

{!! Form::open(array('action' => 'ArticleController@store', 'id' => 'createArticle')) !!}
@csrf


    <div class="row large-12 columns">
         {!! Form::label('', 'Category:') !!}
         {!! Form::select('category_id', $categories, null, ) !!}

        {!! Form::label('', 'Title:') !!}
        {!! Form::text('title', null, ['class' => 'large-8 columns']) !!}
    </div>
{!! Form::close() !!}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...