首先,我需要向您解释我要实现的目标。我试图将所有$categories
返回到用于编辑图像的视图,以便可以将这些$categories
放在选择元素中,但该图像位于顶部的$ category中。我尝试过几种不同的方法,每一种都给我带来很多麻烦。让我举一个例子。
我的主要问题是,我需要第一个选择元素成为图像的当前$ category,以便如果用户不选择其他元素,则图像的$ category不会改变。
这是我以前的尝试:
我的代码是这样的(我剪切了一些与isseu不相关的代码):
public function updateArtwork($id){
$image = Image::where('id', $id)->first();
$imageCategoryId = $image->category_id;
$categories = Category::where('id', '!=', $imageCategoryId)->orderBy('created_at', 'desc')->get();
$imageCategory = Category::where('id', $imageCategoryId)->first();
$imageCategoryName = $imageCategory->name;
return view('updateArtwork', ['image' => $image, 'categories' => $categories, 'imageCategoryId' => $imageCategoryId, 'imageCategoryName' => $imageCategoryName]);
}
然后我在视图中像这样使用它:
<div class="form-group">
<label class='label required' for="artwork-category">Category</label>
<select class='category-select' name='artwork-category' value='{{ Request::old('artwork-category') }}'>
<option value='{{ $imageCategoryId }}'>{{ $imageCategoryName }}</option>
@foreach($categories as $category)
<option value='{{$category->id}}'>{{$category->name}}</option>
@endforeach
</select>
</div>
我的操作方式有很多问题。首先,我进行2个查询,以检查图像所属的类别和不属于该类别的类别。然后,我必须将变量的负载发送到视图,然后在视图中使用它们。我还需要检查这些变量是否存在,因为如果图像没有类别,我的代码就会变成干草堆之类的东西。
这就是为什么我一直想知道是否仅凭口才就能解决所有这些问题。是否可以这样做:
答案 0 :(得分:2)
获取除由时间戳创建的desc排序的匹配ID之外的所有项目,然后prepend将该项目添加到集合中:
$collection = Category::where('id', '!=', $id)->orderByDesc('created_at')->get();
$collection->prepend(Category::find($id);
或使用partition:
list($collection, $matched) = Category::orderByDesc('created_at')->get()->partition(function ($item) use ($id) {
return $item->id !== $id;
});
$collection->prepend($matched->first());
答案 1 :(得分:1)
尝试此代码。只有一个查询
_, D_loss_curr, _ ,_, G_loss_curr= sess.run(
[D_solver, D_loss, clip_D,G_solver, G_loss],
feed_dict={X: X_mb, z: sample_z(mb_size, z_dim)}
)
或
$categories = Category::orderBy('created_at', 'desc')->get();
$categories = $categories->where('id', $imageCategoryId)->merge($categories)