数组计数-Laravel
如何计算所附屏幕截图的阵列数。 在这种情况下,我想要的数字是2数组计数-Laravel,laravel,Laravel,如何计算所附屏幕截图的阵列数。 在这种情况下,我想要的数字是2 public function update(Request $request, $jobId) { //dd($request); // cast into a collection use the collect() helper $collection = collect($request); for ($i=0; $i < $collection
public function update(Request $request, $jobId)
{
//dd($request);
// cast into a collection use the collect() helper
$collection = collect($request);
for ($i=0; $i < $collection->count(); $i++) {
//dd(count($request));
$subJob = SubJob::Find($request->get('id')[$i]);
$subJob->job_id = $jobId;
$subJob->name = $request->get('name')[$i];
$subJob->size = $request->get('size')[$i];
$subJob->medium = $request->get('medium')[$i];
$subJob->feature = $request->get('feature')[$i];
$subJob->qty = $request->get('qty')[$i];
$subJob->price = $request->get('price')[$i];
$subJob->total = $request->get('qty')[$i] * $request->get('price')[$i];
$subJob->save();
}
公共功能更新(请求$Request,$jobId)
{
//dd(请求);
//使用collect()帮助程序强制转换到集合中
$collection=collect$request;
对于($i=0;$i<$collection->count();$i++){
//dd(计数($请求));
$subJob=subJob::Find($request->get('id')[$i]);
$subJob->job\u id=$jobId;
$subJob->name=$request->get('name')[$i];
$subJob->size=$request->get('size')[$i];
$subJob->medium=$request->get('medium')[$i];
$subJob->feature=$request->get('feature')[$i];
$subJob->qty=$request->get('qty')[$i];
$subJob->price=$request->get('price')[$i];
$subJob->total=$request->get('qty')[$i]*$request->get('price')[$i];
$subJob->save();
}
$collection->count()给出值9
是否有其他方法运行循环直到结束?
例如,在blade中,我们有$loop->last,但在这里,我在控制器级别工作
<form action="{{ route('employee.subjob.update',$job->id) }}" method="post"><br>
@csrf
@method('PUT')
@foreach ($subJobs as $subJob)
<input type="hidden" name="id[]" value="{{$subJob->id}}">
<tr>
<td><input type="text" name="name[]" value="{{$subJob->name}}"></td>
<td><input type="text" name="size[]" value="{{$subJob->size}}"></td>
<td>
<textarea name="medium[]" rows="3" cols="20">{{$subJob->medium}}</textarea>
</td>
<td>
<textarea name="feature[]" rows="3" cols="20">{{$subJob->feature}}</textarea>
</td>
<td><input type="text" name="qty[]" value="{{$subJob->qty}}"></td>
<td><input type="text" name="price[]" value="{{$subJob->price}}"></td>
<td><input type="text" name="total[]" value="{{$subJob->total}}" disabled></td>
</tr>
@endforeach
<button type="submit" class="btn btn-primary"> Update Job No {{$job->id}}</button>
</form>
@csrf
@方法('PUT')
@foreach($subbobs作为$subbob)
{{$subbob->medium}
{{$subbob->feature}
@endforeach
更新作业编号{{$Job->id}
可能尝试计数($collection->items)可能尝试计数($collection->items)问题在于如何将数据发送到后端。看起来,您是按属性(一个由id
s组成的数组,然后是一个由name
s组成的数组等等)而不是按“类”进行分组的(包含其中所有属性的元素数组:id
,name
,…)
所以,你可以用两种方法来解决这个问题
公共功能更新(请求$Request,$jobId)
{
/**这应该是输出2*/
$size=count(collect($request)->get('id');
//Try:dd($size);
对于($i=0;$i<$size;$i++)
{
$subJob=subJob::Find($request->get('id')[$i]);
$subJob->job\u id=$jobId;
$subJob->name=$request->get('name')[$i];
$subJob->size=$request->get('size')[$i];
$subJob->medium=$request->get('medium')[$i];
$subJob->feature=$request->get('feature')[$i];
$subJob->qty=$request->get('qty')[$i];
$subJob->price=$request->get('price')[$i];
$subJob->total=$request->get('qty')[$i]*$request->get('price')[$i];
$subJob->save();
}
}
问题在于如何将数据发送到后端。看起来,您的分组是按属性(一个id
s数组,然后是name
s数组等等)而不是按“类”(一个包含所有属性的元素数组:id
,name
,…)进行的
所以,你可以用两种方法来解决这个问题
公共功能更新(请求$Request,$jobId)
{
/**这应该是输出2*/
$size=count(collect($request)->get('id');
//Try:dd($size);
对于($i=0;$i<$size;$i++)
{
$subJob=subJob::Find($request->get('id')[$i]);
$subJob->job\u id=$jobId;
$subJob->name=$request->get('name')[$i];
$subJob->size=$request->get('size')[$i];
$subJob->medium=$request->get('medium')[$i];
$subJob->feature=$request->get('feature')[$i];
$subJob->qty=$request->get('qty')[$i];
$subJob->price=$request->get('price')[$i];
$subJob->total=$request->get('qty')[$i]*$request->get('price')[$i];
$subJob->save();
}
}
直接从您的问题“如何计算所附屏幕截图的阵列数量”
根据你的问题,这里是你如何做到这一点的
$arrayCount = 0;
foreach ($request->request as $req)
{
// this will check for array and check the array has 2 elements
if (is_array($req) && is_array($req) == 2)
{
// your logic here
}
}
我在这里做的是,获取请求对象的request属性。这允许我遍历请求对象中的每个属性。然后我只是检查属性是否为数组。
但在这里,我只向您展示了如何进入阵列。一旦您进入循环中的阵列,您可以直接从您的问题“如何计算所附屏幕截图的阵列数”中执行任何您想要的操作 根据你的问题,这里是你如何做到这一点的
$arrayCount = 0;
foreach ($request->request as $req)
{
// this will check for array and check the array has 2 elements
if (is_array($req) && is_array($req) == 2)
{
// your logic here
}
}
我在这里做的是,获取请求对象的request属性。这允许我遍历请求对象中的每个属性。然后我只是检查属性是否为数组。
但这里我只向您展示了如何进入数组。一旦您进入循环中的数组,您可以做任何您想做的事情您是否尝试过
first()
?。此外,您的问题不清楚您到底想做什么achieve@OluwatobiSamuelOmisakin我需要用从这些数组中获得的输入更新我的数据库()不起作用,我想我需要看一下Laravel-Collections文档。您是否尝试过first()
?。此外,您的问题不清楚您到底想做什么achieve@OluwatobiSamuelOmisakin我需要用从这些数组中得到的输入来更新我的数据库