[英]I can not store info in DB in Laravel 7
我在將信息存儲到 MySQL 數據庫時遇到問題,我嘗試更改將信息存儲到 DB 的方法,但仍然是同樣的問題。 此外,我需要你的幫助來找出問題並解決它。
后控制器
<?php
public function store(){
$inputs= request()->validate([
'title'=>'required|min:8|max:100',
'post_image'=>'file',
'body'=>'required'
]);
if (request('post_image')){
$inputs['post_image']=request('post_image')->store('images');
}
auth()->user()->posts()->create($inputs);
return back();
}
發布 Model
<?php
class Post extends Model
{
//
protected $guarded =[];
public function user(){
return $this->belongsTo(User::class);
}
public function getPostImageAttribute($value){
return asset($value);
}
}
形式
<form action="{{route('post.store')}}" method="post" enctype="multipart/form-data">
@csrf
<div class="form-group">
<lable for="title">Title</lable>
<input type="text" name="title" class="form-control" placeholder="Enter title">
</div>
<div class="form-group">
<lable for="file">File</lable>
<input type="file" name="post_image" class="form-control-file" id="post_image" placeholder="Upload your image">
</div>
<div class="form-group">
<lable for="exampleInputEmail"></lable>
<textarea name="body" cols="30" rows="10" class="form-control"></textarea>
</div>
<button type="submit" class="btn btn-primary"> Submit</button>
</form>
感謝您為幫助我所做的努力,並在此先感謝您。
要獲取請求 object 的文件,您可以通過 file() 方法訪問它。 以及您為什么不對請求使用方法注入
//use Illuminate\Http\Request; - import the use statement at top
public function store(Request $request){
$inputs= $request->validate([
'title'=>'required|min:8|max:100',
//'post_image'=>'file',
'body'=>'required'
]);
if ($request->hasFile('post_image') && $request->file('post_image')->isValid()){
$inputs['post_image'] = $request->file('post_image')->store('images');
}
auth()->user()->posts()->create($inputs);
return back();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.