我从控制器使用了方法存储,而数据没有存储在数据库中。
我想在本机HTML表单的三个表中插入NOM_ARTICLE
,PHOTO_ARTICLE
,TYPE
,DESCRIPTION_ARTICLE
,但是我不知道该怎么做
我正在使用ArticleController,其中有一个方法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')
我的HTML表单:
<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>
我在web.php中有我的路线:
Route::resource('addarticle','ArticleController');
这是我的Article模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class article extends Model {
public $table = 'article';
public $primaryKey ='ID_ARTICLE';
return $this->belongsTo('photo_articles');
}
点击提交按钮后,它会显示如下网址:http://localhost/testprojet/public/addarticle?NOM_ARTICLE=test&ID_TYPE=book&MAX_FILE_SIZE=250000&PHOTO_ARTICLE=villle+icon.jpg&DESCRIPTION_ARTICLE=ss
然后重定向到我的视图addarticle
,但数据库中未添加任何内容。
答案 0 :(得分:0)
我从您的form
中看到的是您没有对其进行任何操作,只是将其留空了:
<form method="post" action="" class="contact_form text-center" id="contact_form">
您应该在控制器中添加一条通往store
方法的路由,以便在提交表单时,数据将被传递到您的控制器中。
此外,提供指向您的localhost
的链接也无法帮助我们理解您的问题,因为我们无法访问它。可靠的屏幕截图即可。
答案 1 :(得分:0)
Yaa您显然错过了csrf令牌以与表格一起传递。如果要在Laravel中冒用任何形式,则应传递csrf令牌。
使用@csrf和Blade将唯一令牌传递给表单Submit
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>
答案 2 :(得分:0)
您应该根据资源模式进行操作。
您的 web.php
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');
}
您正在向文章中添加PHOTO_ARTICLE
,但是您没有像您所说的在文章表中包含此列,因此使用下面的行是没有意义的:
$article->PHOTO_ARTICLE = $request->PHOTO_ARTICLE;
此外,您没有从请求中收到任何LABEL_TYPE
,并且您的articles表中也没有此列。因此,您必须删除以下行:
$article->LABEL_TYPE = $request->LABEL_TYPE;
答案 3 :(得分:0)
尝试一下:希望对您有所帮助。
控制器
My Keyword That Accepts Optional List
[Arguments] ${the_list}=${None}
${the default value}= Create List member0 the other one
${the_list}= Set Variable If $the_list is None ${the default value} # no argument passed when the keyword was called
... ${the_list} # an argument was passed, leave the variable as it was
根据您的数据表创建三个模型,并为所有代码粘贴此代码。
public function store(Request $request)
{
$articleObj = new article;
$articleObj->add($request);
//second table
$employerObj = new Employer();
$employerObj->add($request);
}