в базе данных нет записи в laravel - PullRequest
0 голосов
/ 04 марта 2020

Я много раз пытался вставить товар, который относится к категории без изменений в базе данных это контроллер

class ProduitController extends Controller
{
     public function store(Request $request)
     {
        $pdt=new Produit(); 
        $pdt->nom=$request->input('nomPdt');
        $pdt->libelle=$request->input('libelle');
        $pdt->qte_stock=$request->input('qte');
        $pdt->pu=$request->input('pu');
        $pdt->categorie_id=$request->input('categorie');
        $pdt->etat=1;

       $pdt->save();
     }}

Просмотр

<form action="{{url('produit/'.$pdt->id)}}" method="post">
<label for="nom">nom:</label><br>
<input type="text" id="" name="nom" value=""><br>

<label for="libelle">libellé:</label><br>
<input type="text" id="" name="libelle" value=""><br>

<label for="qte">Qte en stock:</label><br>
<input type="number" id="" name="qte" value="" min="0"><br>

<label for="pu">PU:</label><br>
<input type="number" id="" name="pu" value="" min="0"><br>

<label for="etat">Etat:</label>
<input type="checkbox" id="" name="etat" ><br>

<label for="selectCategorie">Categorie:</label>
<select id="" name="selectCategorie">
    <option value="selectionnez">selectionnez</option>
    @foreach ($categories as $cat)
    <option value="{{ $cat->id }}"> {{ $cat->nom }} </option>
    @endforeach
</select>


для таблицы продуктов, связанной с таблицей категорий enter image description here enter image description here

1 Ответ

0 голосов
/ 04 марта 2020

Мы не видим полную картину маршрута и Ури здесь. Стоит проверить это. Самое простое, что можно сделать, это временный dd(‘here’); в верхней части метода store () вашего контроллера, чтобы убедиться, что вы достигли ожидаемого метода контроллера. После проверки вы можете удалить dd() и уверенно двигаться дальше.

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

 $pdt=new Produit(); 
    $pdt->nom=$request->input('nom');
    $pdt->libelle=$request->input('libelle');
    $pdt->qte_stock=$request->input('qte');
    $pdt->pu=$request->input('pu');
    $pdt->categorie_id=$request->input('selectCategorie');
    $pdt->etat=1;//you have this on your form, but have hard coded here?

   $pdt->save();

Вы также можете немного убрать это, загрузив все входные данные и используя метод create () в режиме.

$inputData = $request()->all();

$pdt = Produit::create([
    'nom' => Arr::get($input, 'nom'), 
    'libelle' => Arr::get($input, 'libelle'),
    'qte_stock' => Arr::get($input, 'qte'),
    'pu' => Arr::get($input, 'pu'),
    'categorie_id' => Arr::get($input, 'selectCategorie'),
    'etat’ => 1
]);

Надеюсь, это сработает!

...