php - 如何修复与控制器相关的此错误?
问题描述
我有问题,谢谢你的帮助。当有人提交问题时,我希望在 Store 方法中完成此操作,但它给了我一个错误,上面写着:需要 thread_id ???!
Subscribe::query()->create([
'thread_id'=>$thread->id,
'user_id' => auth()->user()->id
]);
这是我的 Store 方法的代码,其中包括订阅模型:
public function store(Request $request,Thread $thread)
{
$request->validate([
'title' => ['required', 'min:3'],
'description' => ['required'],
'channel_id' => ['required'],
'thread_id' => ['required']
]);
Thread::create([
'title' => $request->title,
'description' => $request->description,
'user_id' => auth()->user()->id,
'channel_id' => $request->channel_id,
]);
Subscribe::query()->create([
'thread_id' => $thread->id,
'user_id' => auth()->user()->id
]);
return redirect('/');
}
这也是View相关的代码
<form action="{{route('threads.store')}}" method="post">
@csrf
<input type="hidden" name="thread_id" value="{{$thread->id}}">
<div class=" container-fluid w-75 border border-secondary rounded shadow">
<div style="font-weight: bolder; font-size: large;" class=" my-3">فرم ارسال پرسش</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
</div>
<input type="text" name="title" class="form-control" placeholder="موضوع" aria-label="Username" value="{{old('title')}}"
aria-describedby="basic-addon1">
</div>
<div class="input-group">
<textarea name="description" class="form-control" aria-label="With textarea" placeholder="متن پرسش"
style="height: 200px;">{{old('description')}}</textarea>
</div>
<div class="input-group mt-3 " style="direction: ltr;">
<select name="channel_id" class="custom-select" id="channel_id" >
<option selected disabled value="{{old('channel_id')}}">انتخاب عنوان</option>
@foreach(\App\Models\Channel::all() as $channel)
<option value="{{$channel->id}}">{{$channel->name}}</option>
@endforeach
</select>
</div>
<div class="my-3" style="width: 100px;">
<button class="btn btn-success" type="submit">ارسال</button>
</div>
</div>
关于此代码的问题
<input type="hidden" name="thread_id" value="{{$thread->id}}">
我也发送了线程模型
public function create(Thread $thread)
{
return view('answer-question.thread.thread-create',compact('thread'));
}
这是订阅数据库 在此处输入图像描述
解决方案
public function store(Request $request)
{
$request->validate([
'title' => ['required', 'min:3'],
'description' => ['required'],
'channel_id' => ['required'],
'thread_id' => ['required']
]);
$thread = Thread::create([
'title' => $request->title,
'description' => $request->description,
'user_id' => auth()->user()->id,
'channel_id' => $request->channel_id,
]);
Subscribe::query()->create([
'thread_id' => $thread->id,
'user_id' => auth()->user()->id
]);
return redirect('/');
}
当您保存它时,您不能将存储函数带到线程模型,然后您需要定义线程结束然后您可以调用它。
推荐阅读
- java - 当我尝试编辑一个字段时,另一个字段在 Firestore Database Android 中设置为 NULL
- javascript - 使用javaScript从数组中的元素中删除逗号
- database - phpMyAdmin - 使两个表同步
- python - if 语句块返回的最佳模式是什么?
- javascript - 仅在一页上响应上下文更新
- swift - 如何轻松转换字典
. 字典的子序列 - python - 使用 Python 从列中删除特定的最终值
- php - 如何使用 Google Drive API 将文件共享到特定文件夹?
- asp.net-core - 在仅限内部的 Blazor 应用程序中使用 Windows 身份验证是否安全?
- node.js - newDiscord 未定义