为什么数据不与controller @ store方法一起存储

问题描述 投票:0回答:4

我使用来自控制器的方法存储,数据不存储在我的数据库中。

我想在原生HTML的表格中的三个表中插入qazxsw poi,qazxsw poi,qazxsw poi,qazxsw poi,但我不知道要采取什么行动。

我正在使用ArticleController,其中有一个方法NOM_ARTICLE和三个表模型。

PHOTO_ARTICLE

这是我的数据库表:

TYPE

我的HTML表单:

DESCRIPTION_ARTICLE

我在web.php中有我的路线:

store

这是我的文章模型:

public function create()
{
    return view('addarticle');
}

public function store(Request $request)
{
    $article = new article;
    $article->NOM_ARTICLE = $request->NOM_ARTICLE;
    $article->LABEL_TYPE = $request->LABEL_TYPE;
    $article->PHOTO_ARTICLE = $request->PHOTO_ARTICLE;
    $article->DESCRIPTION_ARTICLE = $request->DESCRIPTION_ARTICLE;
    $article->save();

    return redirect()->route('addarticle');
}

点击提交按钮后,它会显示如下网址:article ('ID_ARTICLE','NOM_ARTICLE','ID_TYPE,'DESCRIPTION_ARTICLE') photo_articles('ID_PHOTO','ID_ARTICLE','PHOTO_ARTICLE') type('ID_TYPE','TYPE')

并重定向到我的视图<form method="post" action="" class="contact_form text-center" id="contact_form"> <div class=""> <div class="col-lg-4"> <input type="text" class="contact_input" name="NOM_ARTICLE" placeholder="Nom d'article" required="required"> </div> <br/> <div class="col-lg-4"> <input type="text" class="contact_input" name="ID_TYPE" placeholder="Type d'article" required="required"> </div> <div> <input type="hidden" name="MAX_FILE_SIZE" value="250000" /> <input type="file" class="contact_input" name="PHOTO_ARTICLE" placeholder="Capture de votre article" name="fic" size=50 required="required" /> <!-- <input type="submit" value="Envoyer" /> --> </div> </div> <textarea class="contact_textarea contact_input" name="DESCRIPTION_ARTICLE"placeholder="Description" required="required"></textarea> <button class="contact_button" type="submit">Valider!</button> </form> 但数据库中没有添加任何内容。

php html laravel
4个回答
0
投票

Yaa You显然错过了csrf令牌以传递表单。如果你想在Laravel中传播任何形式,你应该传递csrf令牌。

使用@csrf和blade会将唯一令牌传递给表单提交

Route::resource('addarticle','ArticleController');

例:

<?php
  namespace App;
  use Illuminate\Database\Eloquent\Model;

  class article extends Model {
    public $table = 'article';
    public $primaryKey ='ID_ARTICLE';
    return $this->belongsTo('photo_articles');
  }

0
投票

我从你的http://localhost/testprojet/public/addarticle?NOM_ARTICLE=test&ID_TYPE=book&MAX_FILE_SIZE=250000&PHOTO_ARTICLE=villle+icon.jpg&DESCRIPTION_ARTICLE=ss看到的是你没有在其中放任何动作,你只是把它留空:

addarticle

您应该在控制器中添加到https://laravel.com/docs/5.8/csrf方法的路径,以便在提交表单时,数据将传递到您的控制器中。

此外,提供您的<form method="post" action="" class="contact_form text-center" id="contact_form"> @csrf <div class=""> <div class="col-lg-4"> <input type="text" class="contact_input" name="NOM_ARTICLE" placeholder="Nom d'article" required="required"> </div> <br/> <div class="col-lg-4"> <input type="text" class="contact_input" name="ID_TYPE" placeholder="Type d'article" required="required"> </div> <div> <input type="hidden" name="MAX_FILE_SIZE" value="250000"/> <input type="file" class="contact_input" name="PHOTO_ARTICLE" placeholder="Capture de votre article" name="fic" size=50 required="required"/> <!-- <input type="submit" value="Envoyer" /> --> </div> </div> <textarea class="contact_textarea contact_input" name="DESCRIPTION_ARTICLE" placeholder="Description" required="required"></textarea> <button class="contact_button" type="submit">Valider!</button> </form> 链接并不能帮助我们理解您的问题,因为我们无法访问它。一个可靠的屏幕截图。


0
投票

您应该根据资源模式执行操作。

你的web.php

form

你的表格:

<form method="post" action="" class="contact_form text-center" id="contact_form">

您还应该包含store刀片指令。

在你的控制器:

localhost

你正在添加Route::resource('articles','ArticleController'); 到文章,但你没有像你说的那样在你的文章表中有这个列,所以使用下面的行是没有意义的:

<form method="post" action="{{route('articles.store')}}" class="contact_form text-center" id="contact_form">
@csrf

此外,您没有从您的请求中收到任何@csrf,并且您的文章表中也没有此列。所以你必须删除这一行:

public function store(Request $request)
{
    $article = new Article();
    $article->NOM_ARTICLE = $request->NOM_ARTICLE;
    $article->DESCRIPTION_ARTICLE = $request->DESCRIPTION_ARTICLE;
    $article->save();

    return redirect()->route('addarticle');
}

0
投票

试试这个:我希望它会对你有所帮助。

调节器

PHOTO_ARTICLE

根据您的数据表创建三个模型并粘贴所有代码。

$article->PHOTO_ARTICLE = $request->PHOTO_ARTICLE;
© www.soinside.com 2019 - 2024. All rights reserved.