小编The*_*ude的帖子

Laravel - 数据库,表和列命名约定?

我正在使用laravel eloquent数据对象来访问我的数据,命名我的表,列,外键/主键等的最佳方法是什么?

我发现,那里有很多命名约定.我只是想知道哪一个最适合laravel雄辩模型.

我正在考虑遵循命名约定:

  1. 奇异的表名(例如:帖子)
  2. 奇异列名称(例如:userId - post表中的用户ID)
  3. 用于表名中多个单词的Camel大小写(例如:PostComment,PostReview,PostPhoto)
  4. 用于列名中多个单词的Camel大小写(例如:firstName,postCategoryId,postPhotoId)

所以有了这个,我可以在控制器中使用类似的语法.

$result = Post::where('postCategoryId', '4')->get();
Run Code Online (Sandbox Code Playgroud)

是否有任何推荐的Laravel指南?我可以继续这些命名约定吗?

如果有人有更好的建议,我会很高兴听到他们.谢谢你们!

php database naming-conventions laravel eloquent

24
推荐指数
2
解决办法
4万
查看次数

Laravel Eloquent Eager Loading:加入同桌两次

我有一个用户表和约会表.在约会表中,我有两个用户ID(customer_id,staff_id).我想检索所有带有客户名称和员工姓名的约会.

users table
id
name

appointments table
id
staff_id(user_id)
customer_id(user_id)
datetime
Run Code Online (Sandbox Code Playgroud)

如您所见,我必须使用约会表两次加入users表.通常我用内连接来做这个.

我们可以使用with()使用Laravel雄辩的急切加载做同样的事情吗?

我们可以这样做:

appointments::with('users' * )->get();?
* Do something here to inner join users table twice, and read user1.name as staff_name,   user2.name as customer_name.
Run Code Online (Sandbox Code Playgroud)

这是我需要的最终输出:

appointment_id
staff_id
staff_name
customer_id
customer_name
datetime
Run Code Online (Sandbox Code Playgroud)

我有另一个问题,以下查询中的第二个参数是什么?

User::with(array(
    'post'=> function() use $region {
          //what is use $region means? Can you give me an example?
     }
));
Run Code Online (Sandbox Code Playgroud)

谢谢!

php database join laravel eloquent

8
推荐指数
1
解决办法
1万
查看次数

解决SourceTree中的Git冲突

之前我使用的是NetBeans GIT插件,然后我决定切换到SourceTree,因为它更高效,更强大.作为SourceTree的新手,我已经设法找出基本的Pull,Push和Commit工作流程.

但是,当我和朋友的工作合并时出现文件冲突时,我陷入了困境.在NetBeans中如果存在任何冲突,插件建议在弹出窗口中解析它,我只想转到冲突解析接口并通过单击按钮接受正确的代码块.这很简单.

在SourceTree中,有一种称为外部合并工具的东西对我来说效果不佳.当我右键点击有冲突的文件时,它只是并排打开两个文件,中间有从左到右的箭头.屏幕底部有一个下拉列表,用于选择箭头方向.

我试图使用此接口来解决冲突,但我失败了.它没有修复冲突并合并了两个文件.

当我在互联网上搜索时,我发现有些人使用外部SourceTree冲突解决插件进行合并.其实我在这里迷路了.这就是为什么我决定在这里发布这个问题,因为这可能会帮助像我这样的人.

我知道有很多人长期使用SourceTree.他们中的任何人都可以告诉我,如何有效地解决SourceTree中的冲突?

我应该使用外部插件还是应该使用外部合并工具(如果是这样,我该如何使用它)?

git merge conflict merge-conflict-resolution atlassian-sourcetree

8
推荐指数
1
解决办法
1万
查看次数

Swift单元测试错误 - 未找到架构i386的AWSCore框架

我让Swift 2.3项目与AWS Libraries一起正常运行.我只是试图为此创建一个样本单元测试,我得到了这个错误.看来我的单元测试类找不到我使用Podfile安装的框架

这是单元测试类

import XCTest
import UIKit
@testable import safetyv1


class OffenceFormVCTests: XCTestCase {

    var vc:OffenceFormVC!

    override func setUp() {
        super.setUp()
        // called first
        vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("OffenceFormVC") as! OffenceFormVC
    }

    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
    }



}
Run Code Online (Sandbox Code Playgroud)

这是我在执行Product> Build for> Testing时遇到的错误 在此输入图像描述

我的构建设置 在此输入图像描述

Podfile
在此输入图像描述

任何人都知道如何解决这个问题?非常感谢!

unit-testing runtime-error ios swift

8
推荐指数
1
解决办法
2302
查看次数

Android单元测试:如何让课程更可测试?

我一直在开发Android应用程序,但没有编写任何单元测试.最近我开始学习它并尝试使用JUnit来测试我的android应用程序.

我发现大多数时候我在API调用中遇到错误,但我仍然无法理解如何为它们编写单元测试(以及如何使原始代码可测试).

让我解释一下这个功能:

我正在运行一个函数调用setOffenceList().函数内部发生了多个动作.

i)加载RestClient并传递URL.

ii)RestClient与JSON api交谈并获得响应

ii)我在onSuccess(String response)函数中获取响应

iii)解析JSON数据并存储在数组中

iv)如果成功,我将在列表视图中显示数据(否则显示错误消息)

这是代码:

public class OffenceFrag extends Fragment {


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.frag_offence, container, false);
        //run API call
        setOffenceList();
        return view;
    }

    private void setOffenceList() {
        String url = Paths.SITE_URL ;
        RestClient.get(url, null, new AsyncHttpResponseHandler() {

            @Override
            public void onStart() {
                Toast.makeText(getActivity(), "Loading offences...", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onSuccess(String response) {

                //Parse JSON
                JSONArray jsonArray;
                try {

                    JSONObject jsonObj = …
Run Code Online (Sandbox Code Playgroud)

java api junit android unit-testing

6
推荐指数
2
解决办法
1058
查看次数

Laravel:发布后加载视图

在Codeigniter中,我过去在发布数据后调用视图函数。像下面

例如:我有一个show_products()函数,它将显示产品列表。当用户添加新产品时,我会将数据发布到add_product()函数中。如果该过程成功,我将不会重定向到产品页面,而是将显示函数加载到add_product()中,如下所示:

//Inside the add_product() function
if(success){

   $this->show_products();

}
Run Code Online (Sandbox Code Playgroud)

我认为,没有必要重新加载页面。由于我们已经在发布函数中,因此我们可以在数据库插入后立即设置视图。

但是在laravel中,我看到人们在发布数据后进行重定向。

例如:

//Inside the postProduct() function
if(success){

   return Redirect::to('products');

}
Run Code Online (Sandbox Code Playgroud)

我试过了;

//Inside the postProduct() function
if(success){

   $this->getIndex();// this is my product display function

}
Run Code Online (Sandbox Code Playgroud)

但这没用。

通过在post函数中加载视图而无需每次都重定向,是否有好处?

如果是这样,我如何用laravel达到相同的目的?

非常感谢!

php post view laravel

3
推荐指数
1
解决办法
7232
查看次数

Laravel - Eloquent子查询过滤器行

我想让工作人员level等于"高级".我想将用户表与员工合并,因为它包含有关员工的常见信息,如姓名,电子邮件等.

目前我在Eloquent中使用它:

$results = User::with(array('staff' => function($query) {
    $query->where('level', 'Senior');
}))->all();
Run Code Online (Sandbox Code Playgroud)

如果我运行这个我获得所有用户虽然级别等于高级,但我可以在数组中看到人员对象是空的.

目前我做空检查以丢弃不匹配的记录.

反正有没有以更好的方式实现它,所以当我在子查询中过滤一些东西时,主查询将只返回匹配的结果数组,所以我不必再进行任何空检查.

mysql subquery filter laravel eloquent

1
推荐指数
1
解决办法
3446
查看次数