php - 如何在 Laravel 4 中连接表

标签 php mysql laravel laravel-4 join

我是 Laravel 4 的新手,我似乎找不到可靠的答案,因为 Laravel 4 中有多种连接表的方法。连接两个表的正确方法是什么?我有一个用户表和一个可用性表。

用户的可用性存储在可用性表中。在我的可用性表中,有一个名为 usersid 的列,它与用户关联。我知道如何运行 sql 查询来加入表,但我不确定如何在 Laravel 4 中执行此操作。

SQL 查询

SELECT users.id, users.firstname, users.lastname users.zipcode, availability.dateavailable
FROM users, availability
WHERE users.id=availability.userid

HTML 表单

        <form action="search" method="post" accept-charset="utf-8">
            <div class="form-group">

                <select  name="temptype" class="form-control">
                    <option value="" selected="selected">Select Temp Type</option>
                    <option value="hygienist" >Hygienist</option>
                    <option value="dentist" >Dentist</option>
                    <option value="dentalassistant" >Dental Assistant</option>
                </select>

            </div><!-- end username form group -->
            <div class="form-group">
                <input type="text" name="zipcode" class="form-control" id="zipcode"    placeholder="zipcode">
            </div>
            <div class="form-group">
                <input type="date" name="date" class="form-control" id="date"   placeholder="selectdate">
            </div>
    </div><!-- end .modal-body -->
    <div class="modal-footer">
        <input type="submit" name="submit"  class="btn btn-primary" />
    </div>
    </form>

Laravel 4 用户模型

  public static function getTemps()
    {

       // Create a array of allowed types.
        $types = array('hygienist', 'dentist', 'dentalassistance');

        // Get what type the user selected.
        $type = Input::get('temptype');

        //Get user location
        $location = Input::get('zipcode');

        //Get the date temp is needed
        $date = Input::get('date');

        // Make sure it is a valid type.
        if(!in_array($type, $types))
        {
            return App::abort(500, "Invaild temptype.");
        }

        $temps = DB::table('users')
            ->where('usertype', $type)
            ->where('zipcode', $location)
            ->get();

        var_dump( $temps);
    }

最佳答案

我认为这可能适合你:

DB::table('users')
    ->join('availability', 'users.id', '=', 'availability.userid')
    ->select('users.id', 'users.firstname', 'users.lastname', 'users.zipcode', 'availability.dateavailable')
    ->where('usertype', $type)
    ->where('zipcode', $location)
    ->get();

关于php - 如何在 Laravel 4 中连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19199310/

相关文章:

php - 确保多个请求被依次处理

php - 如何从symfony2中的表单对象获取每个字段的错误消息?

mysql - SQL查询查找每个user_id的最大id

php - 如何在 laravel 中使用条件数组从数据库中进行选择

php - Laravel 如何在 Eloquent 模型中添加自定义函数?

php - 选择多个表只在一个表中工作

php - 打印行为 PHP

mysql - 在sql中使用group关键字检索单行中的数据

php - 带有内部选择的复杂 SQL 插入更新

php - 自己网站上的 API 内部请求?