我应该为控制器内部或模型内部的模型插入数据吗?

时间:2018-06-13 21:41:56

标签: php laravel eloquent

正如我的问题标题所述,我想知道遵循在数据库中插入数据的“Laravel方式”的所有最佳实践和优点/缺点。

使用import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt x = np.linspace(0,6.19, 100) y = np.sin(x) ax = plt.gca() p1 = ax.plot(x,y, label="test") # list of text objects text = [mpl.text.Text(0,0,'$a=$'), mpl.text.Text(0,0,'$2$')] # HPacker of text objects # right way to get them into the legend? hp = mpl.offsetbox.HPacker(children=text) lgd = plt.legend([p1,??], ['legend1',??]) plt.show() 在数据库中插入与该控制器模型相关的新行是不好的做法?

在模型中创建一个单独的函数本身是一个更好的做法吗?

如果是这样,为什么?

3 个答案:

答案 0 :(得分:1)

这取决于项目的大小,您可以直接在控制器中使用模型,并使用Eloquent的流畅界面来完成您的逻辑。

在控制器中调用模型从数据库中获取数据没有任何错误。

如果有一些复杂的查询,您可以在模型中创建方法,然后在控制器中调用该方法...

答案 1 :(得分:0)

在laravel中,您可以在控制器,视图(刀片)或甚至路径中使用插入。 但建议在您的控制器上。这有助于使您的代码清洁

答案 2 :(得分:0)

您可以查看resource controller。它已经预定义了E/cv::error(): OpenCV(3.4.1) Error: Assertion failed (src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols) in void Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv*, jclass, jlong, jobject, jboolean), file /build/master_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp, line 101 E/org.opencv.android.Utils: nMatToBitmap caught cv::Exception: OpenCV(3.4.1) /build/master_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp:101: error: (-215) src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols in function void Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv*, jclass, jlong, jobject, jboolean) E/CameraBridge: Mat type: Mat [ 1920*1080*CV_8UC4, isCont=true, isSubmat=false, nativeObj=0x73dfae9ca0, dataAddr=0x73daa00000 ] Bitmap type: 1920*1080 Utils.matToBitmap() throws an exception: OpenCV(3.4.1) /build/master_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp:101: error: (-215) src.dims == 2 && info.height == (uint32_t)src.rows && info.width == (uint32_t)src.cols in function void Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv*, jclass, jlong, jobject, jboolean) A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x28 in tid 21283 (Binder:21268_1), pid 21268 (foo.bar) Application terminated. 方法之类的逻辑,您可以在其中放置一些store(),如您所说。

如果您还在模型中创建方法并从控制器中调用它,那也不错。

我认为,Model::create()方法可以直接从请求中存储一些数据(从前端的某种形式,例如)就足够了。但是,如果您希望/需要制作的不仅仅是直接存储模型,则可能会在模型内部使用单独的方法。除了避免控制器的方法过度生长并保持代码漂亮。

答案真的取决于,所以也许你会对你想要实现的逻辑有所了解。