前提・実現したいこと
Laravel 6.0 にて、
管理画面より
1投稿 複数画像投稿
1:多
で登録出来るシステムを検討しています。
状況
不明で手が止まってしまいました。
該当のソースコード
Laravel 6.0 (Model) Post, image post.php class Post extends Model { // protected $fillable = [ 'title', 'content', 'description', 'created_at', 'updated_at', 'author_id', 'post_type' ]; public function images() { return $this->hasMany('App\image'); } } image.php class image extends Model { protected $fillable = ['post_id', 'caption', 'path']; public function post() { return $this->belongsTo('App\Post'); } } コントローラ PostController.php public function store(Request $request, $post_type) { $post = Post::create([ 'title' => $request->title, 'content' => $request->post_content, 'description' => $request->description, 'author_id' => $request->author_id, 'post_type' => $post_type, 'created_at' => $request->created_at, 'updated_at' => $request->updated_at, ]); for ($i = 1; $i <= 10; $i++) { if ($request->files->has("featured-image$i")) { $caption = isset($request->featured_caption{$i}) ? $request->featured_caption{$i} : ""; $object = image::create([ ''※ここで止まってしまいました。 ]) } } return redirect()->route('home', ['post_type' => $post_type]); }
不明点
post_id をいかにして登録するかを悩んでいます。
基本的な質問ですみません。
補足情報
少々みづらいですが、view も記載します。
@if($CPT[$post_type]['featured-image'])
<table class="table table-bordered">
<thead>
<tr>
<th>#</th>
<th>画像</th>
</tr>
</thead>
<tbody>
{{-- @for($i=0;$i<10;$i++) --}}
@for($i=0;$i<1;$i++)
<tr>
<td>{{$i+1}}</td>
<td>
<div id="image-holder{{$i+1}}"></div>
<div class="input-group" style="padding-top: 10px">
<div class="custom-file ">
<input type="file" class="custom-file-input"
onchange="ValidateSize(this)"
id="featured{{$i+1}}"
name="featured-image{{$i+1}}"
accept=".png, .jpg, .jpeg">
<label class="custom-file-label feature_text"
for="featured{{$i+1}}"
id="featured_text{{$i+1}}">ファイル選択</label>
@error("featured".($i+1)))
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="input-group-append">
<span
class="input-group-text"
style="cursor: pointer"
id="featured_delete{{$i+1}}"><i
class="fas fa-trash-alt"> </i>削除</span>
</div>
</div> <div class="form-group"> <label style="padding-top: 10px">キャプション</label> <textarea class="form-control" name="featured_caption{{$i+1}}" rows="3" placeholder="キャプションを入力してください ..."></textarea> </div> </td> </tr> @endfor </tbody> </table> @endif
アドバイスをどうかお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。