标签: eloquent

雄辩的渴望加载顺序

我有雄辩的查询问题.我正在使用急切加载(一对一关系)来获得' 学生 '使用' 考试 ',使用下面的代码.

Student::with('exam')->orderBy('exam.result', 'DESC')->get()
Run Code Online (Sandbox Code Playgroud)

我想通过' 考试 '中的' 结果 '列来订购收到的行.我在用

->orderBy('exam.result', 'DESC')
Run Code Online (Sandbox Code Playgroud)

但它没有用.有什么想法怎么做?

eager-loading laravel eloquent laravel-4

51
推荐指数
5
解决办法
4万
查看次数

Eloquent - > first()if - > exists()

我想得到条件匹配的表中的第一行:

User::where('mobile', Input::get('mobile'))->first()
Run Code Online (Sandbox Code Playgroud)

它运行良好,但如果条件不匹配,则会抛出异常:

ErrorException
Trying to get property of non-object
Run Code Online (Sandbox Code Playgroud)

目前我这样解决:

if (User::where('mobile', Input::get('mobile'))->exists()) {
    $user = User::where('mobile', Input::get('mobile'))->first()
}
Run Code Online (Sandbox Code Playgroud)

我可以不运行两个查询吗?

php laravel eloquent

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

Laravel Eloquent,其中字段为X或null

我有这样一张桌子:

table
- field1: tinyint
- field2: varchar (nullable)
- datefield: timestamp (nullable)
Run Code Online (Sandbox Code Playgroud)

现在我想得到所有条目,其中field1为1,field2为null,其中datefield小于X或null.我已经尝试过这样的事:

$query = Model::where('field1', 1)
            ->whereNull('field2')
            ->where('datefield', '<', $date)
            ->orWhereNull('datefield');
Run Code Online (Sandbox Code Playgroud)

但那不起作用.我总是得到datefield为null的每个条目.其他领域是什么并不重要.我还尝试将它分成2个查询:首先获取datefield小于X或null的每一行然后(基于它)获取field1为1且field2为null的每个字段.

结果是一样的.知道怎么做吗?

php laravel eloquent

50
推荐指数
2
解决办法
11万
查看次数

Eloquent push()和save()的区别

我已经阅读了关于雄辩的laravel 4文档,并且对push()部分非常感兴趣.它说,

有时您可能希望不仅保存模型,还保存其所有关系.为此,您可以使用push方法:

拯救模型和关系

$user->push();

请看这里的链接

对不起,但是我在save()和push()之间的区别有点模糊.我希望有人可以为我清除这一个.谢谢.

laravel eloquent laravel-4

49
推荐指数
2
解决办法
5万
查看次数

在Eloquent模型事件中获取先前的属性值

有没有办法在其savingupdating事件中查看模型属性的旧/先前值?

例如.有类似以下可能:

User::updating(function($user)
{
    if ($user->username != $user->old->username) doSomething();
});
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent laravel-4

48
推荐指数
2
解决办法
3万
查看次数

选择前10行 - Laravel Eloquent

到目前为止,我有以下模型:

class Listing extends Eloquent {
     //Class Logic HERE
}
Run Code Online (Sandbox Code Playgroud)

我想要一个基本函数来检索我的表"listing"的前10行并将它们传递给视图(通过控制器?).

我知道这是一项非常基本的任务,但我找不到一个简单的指南,它实际上逐步解释了如何显示一组基本结果,同时详细说明了模型,控制器和视图文件中所需的内容.

php orm laravel eloquent

48
推荐指数
4
解决办法
9万
查看次数

Laravel Eloquent - 附加vs同步

是什么区别attach(),并sync()在Laravel 4雄辩的ORM?我试着环顾四周但找不到任何东西!

php relationship laravel eloquent laravel-4

48
推荐指数
3
解决办法
6万
查看次数

Laravel - 按自定义列查找或失败

findOrFail()如果没有找到任何内容,则会抛出404 的方法,例如:

User::findOrFail(1);
Run Code Online (Sandbox Code Playgroud)

如何通过自定义列找到实体或失败,如下所示:

Page::findBySlugOrFail('about');
Run Code Online (Sandbox Code Playgroud)

laravel eloquent laravel-4 laravel-5

48
推荐指数
3
解决办法
6万
查看次数

如何为Laravel/Eloquent模型设置默认属性值?

如果我尝试声明属性,像这样:

public $quantity = 9;
Run Code Online (Sandbox Code Playgroud)

...它不起作用,因为它不被视为"属性",而仅仅是模型类的属性.不仅如此,我还阻止访问实际存在的"数量"属性.

那我该怎么办?

php model laravel eloquent laravel-4

46
推荐指数
3
解决办法
6万
查看次数

Laravel 5使用关系查询会导致"在null上调用成员函数addEagerConstraints()"错误

我一直在尝试创建一个简单的用户管理系统,但在查询关系时不断遇到障碍.例如,我有用户角色,每当我尝试对所有用户及其角色进行查询时,我都会收到错误消息.标题中的那个只是我遇到的最新版本.

我的用户和角色模型如下所示:

class Role extends Model
{
    public function users()
    {
        $this->belongsToMany('\App\User', 'fk_role_user', 'role_id', 'user_id');
    }
}
Run Code Online (Sandbox Code Playgroud)
class User extends Model
{
    public function roles()
    {
        $this->belongsToMany('\App\Role', 'fk_user_role', 'user_id', 'role_id');
    }
}
Run Code Online (Sandbox Code Playgroud)

我的迁移表中两者之间的多对多关系如下所示:

public function up()
    {
        Schema::create('role_user', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned()->nullable(); //fk => users
            $table->integer('role_id')->unsigned()->nullable(); //fk => roles

            $table->foreign('fk_user_role')->references('id')->on('users')->onDelete('cascade');
            $table->foreign('fk_role_user')->references('id')->on('roles')->onDelete('cascade');
        });
    }
Run Code Online (Sandbox Code Playgroud)

然后我尝试在控制器中获取他们关系的所有记录:

public function index()
{
    $users = User::with('roles')->get();

    return $users;
}
Run Code Online (Sandbox Code Playgroud)

所以我需要另一双眼睛告诉我这里我缺少什么?

php mysql laravel eloquent laravel-5

46
推荐指数
3
解决办法
3万
查看次数

标签 统计

eloquent ×10

laravel ×10

php ×7

laravel-4 ×6

laravel-5 ×2

eager-loading ×1

model ×1

mysql ×1

orm ×1

relationship ×1