使用updateOrCreate检查记录是否存在,如果laravel 5.5中存在记录,则进行数学运算(SUM)

时间:2019-03-13 20:43:19

标签: php laravel

我有一个存储功能,可将数组项目保存到我的项目表中,并且与我一起尝试检查product_is是否已在Warehouse1StockSummaries中。如果仍然没有,我将获取product_id及其数量,如果已经存在,那么我想将数组内“ stock_in_qty”中的值添加到我的Warehouse1StockSummaries中的“ qty_in”中。希望我的解释对您有意义:)

这是我的代码。

public class FavoritesActivity extends AppCompatActivity {

private static final String DATABASE_NAME="recipes_db";
private RecipeDatabase recipeDatabase;
private List<RecipeModel> recipeModelList;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_favorites);

    recipeDatabase= Room.databaseBuilder(getApplicationContext(), RecipeDatabase.class, DATABASE_NAME)
            .fallbackToDestructiveMigration()
            .build();
    String text="";

    recipeModelList=getRecipes().getValue();


    for(RecipeModel recipeModel :recipeModelList){
        text+=recipeModel.getTitle()+" ";
    }

    TextView textView=(TextView) findViewById(R.id.textViewFavoritesList);
    textView.setText(text);
}

public LiveData<List<RecipeModel>> getRecipes() {
    return recipeDatabase.daoAccess().getAllRecipes();
}
}

我检查了一下,一切都OK,唯一缺少的部分是我需要从“ stock_in_qty”中获取值并将其添加到“ qty_in”(如果在Warehouse1StockSummaries中已经找到了产品ID)。提前非常感谢您!

1 个答案:

答案 0 :(得分:1)

您可以在模型上使用from TWO_FACTOR_AUTU import LoginView class YourLoginView(LoginView): form_list = ( ('auth', YourLoginForm), ('token', AuthenticationTokenForm), ('backup', BackupTokenForm), ) 属性来确定是否刚刚创建了模型。如果尚未使用,则将不会使用wasRecentlyCreated值,这意味着您可以使用increment()添加到数据库中的现有值:

$qty_in