我需要menuId和foodItem名称的组合唯一,但是食品ID是输入值
我尝试过
ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(@NonNull Network network) {
Toast.makeText(MainActivity.this, "Request successful", Toast.LENGTH_LONG).show();
}
@Override
public void onUnavailable() {
super.onUnavailable();
Toast.makeText(MainActivity.this, "No internet connection", Toast.LENGTH_LONG).show();
}
};
final ConnectivityManager connectivityManager
= (ConnectivityManager) MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE);
connectivityManager.registerNetworkCallback(new NetworkRequest.Builder()
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
.build(), networkCallback);
有趣的是,我已经回答了类似的问题here,但在这里却无法解决!
我也尝试过
return [
'foodItemId' => 'required|unique:food_items,id,' . 1 . ',menuId',
];
和
'foodItemId' => [
'required',
Rule::unique('food_items', 'id')->where(function($query) use($menu){
return $query->where('id', request()->input('foodItemId'))->where(function($qr) use($menu){
return $qr->where('menu_id', '!=', $menu);
});
})
],
和
'foodItemId' => ['required', Rule::unique('food_items', 'id')->where(function ($query) use ($menu) {
return $query->where('menu_id', '!=', $menu);
})],
答案 0 :(得分:0)
只需将不等于HKEY_CURRENT_USER\Software\Classes\myprotocol
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\ProtocolExecute\myprotocol
的值更改为等于!=
:
=
答案 1 :(得分:0)
我现在做了一个解决方法,希望我能得到一个更好的解决方案
public function rules()
{
$menu = $this->menu->id;
return [
'foodItemId' => function ($attribute, $value, $fail) use ($menu) {
$foodItemName = FoodItem::find($value)->name;
$validationStatus = FoodItem::where('name', $foodItemName)->where('menu_id', $menu)->get()->isNotEmpty();
if ($validationStatus) {
$fail('This item is already in the menu.');
}
},
];
}