相关疑难解决方法(0)

Laravel 5 isDirty()总是返回false

我想检查模型是否已使用isDirty方法更改,但始终返回false.

这是我的代码:

 if (!is_null($partnersData)) {
        foreach ($partnersData as $partnerData) {
            $partner = Partner::find($partnerData['partner_id']);
            $partner->update($partnerData);

            if($partner->isDirty()){
                dd('true');
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent laravel-5

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

Laravel 如何仅在更改值时更新 mysql 中的值

我是 Laravel 的新手。我正在尝试做的如下:

我的表单中有一些字段,例如TITLE, DESCRIPTION

TITLE字段在数据库中是唯一的。

这就是我为更新我的价值观所做的事情。

$product              = Product::find($id); 
$product->title       = $request->title;
$product->description = $request->description;
$product->save();
Run Code Online (Sandbox Code Playgroud)

但这会产生错误(该值已存在),因为我的TITLE字段是唯一的。

我想要的只是在TITLE值发生更改时更新我的TITLE,否则更新相同的值但更新其他字段。谢谢

php mysql laravel laravel-5.3

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

Laravel:如何验证模型是否已更改

有没有一种简单的方法让Eloquent save方法检查一行是否实际发生了变化?类似affected_rows的口才?

我发现的唯一解决方法是来自Laravel Eloquent更新,只要进行了更改:

$user = Auth::user();

$timestamp = $user->updated_at;

$user->title = $request->input('title');
....

$user->save();

if($timestamp == $user->updated_at){
   // row was not updated.
}
Run Code Online (Sandbox Code Playgroud)

但是,如果不需要$timestep变量和检查,这可能会更短吗?我不想在每个控制器中重复那个逻辑.

我正在寻找这样的东西:

$user = Auth::user();

$user->title = $request->input('title');
....

if($user->save()){
   // row was updated.
}
Run Code Online (Sandbox Code Playgroud)

但是,这并不因为工作$user->save的回报true在这两种情况下.还有另外一种方法吗?

php laravel eloquent laravel-5 laravel-5.5

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

如何知道哪些字段被更新

我在 Laravel 5 中工作,我有一个模块,用户可以在其中更新学生的信息,为此用户有一个包含当前数据的预加载表单,他可以修改他想要的字段。然后,在控制器中我做:

$perfil->update(Input::all())
Run Code Online (Sandbox Code Playgroud)

这很好用。所以我的问题是:有没有办法获取已更新字段的名称?

php forms laravel laravel-5

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

标签 统计

laravel ×4

php ×4

laravel-5 ×3

eloquent ×2

forms ×1

laravel-5.3 ×1

laravel-5.5 ×1

mysql ×1