PHP   发布时间:2022-04-05  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-Laravel-软删除未生效大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我在使用软删除遇到问题.我的应用程序中有一个功能,用户可以为其添加关注的属性广告.他们还可以取消为房地产广告加注星标.

这很好.当他们取消星标时,记录将被软删除. delete_at时间戳已更新.

但是,如果用户尝试再次对其加注星标,则会收到一条消息,指出该属性已被点赞/加注星标.那么软删除被忽略了吗?有任何想法吗?

StarredPropertymodel

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Softdeletes;


class StarredProperty extends Model
{
    use Softdeletes;

    protected $fillable = ['property_id', 'user_id'];

    public function scopeStarredProperty($query, $propertyId, $userId)
    {
        return $query->where('property_id', $propertyId)->where('user_id', $userId)->first();
    }
}
@H_607_12@

StarredPropertyController

class StarredPropertyController extends Controller
{
    public function star(Property $property, User $user, request $request)
    {     
        if(!$user->starredProperties()->starredProperty($property->id, $user->id))
        {
            return response()->json(StarredProperty::create(['property_id' => $property->id, 'user_id' => $user->id]));
        }

        return response()->json('You have already like this property');
    }

    public function unstar(Property $property, User $user, request $request)
    {
        $starredProperty = $user->starredProperties()->starredProperty($property->id, $user->id);

        if($starredProperty->exists())
        {
            $starredProperty->delete();
        }
    }
}
@H_607_12@

解决方法:

如果在star函数上是否存在starredProperty,则在if末尾缺少-> get().
$user-> starredproperty()-> starredProperty($property-> id,$user-> id)返回查询,而不是记录.要获取记录,您仍然需要执行get,如果没有记录,则get返回的值将为null.

大佬总结

以上是大佬教程为你收集整理的php-Laravel-软删除未生效全部内容,希望文章能够帮你解决php-Laravel-软删除未生效所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: