Php AWS MySQL是否正在缓存数据?拉维尔5号

Php AWS MySQL是否正在缓存数据?拉维尔5号,php,mysql,api,amazon-web-services,laravel-5,Php,Mysql,Api,Amazon Web Services,Laravel 5,我正在创建一个简单的API端点,它返回事件的访问代码 如果事件没有访问代码,则会为其分配一个访问代码并保存在数据库中。然后,它检查它当前是公共的还是私有的。如果为private,则返回访问代码;如果为public,则返回空字符串 这是端点控制器: public function getAc($eventId) { // Pull event $event = $this->eventService->api->getEventForce($eventId);

我正在创建一个简单的API端点,它返回事件的访问代码

如果事件没有访问代码,则会为其分配一个访问代码并保存在数据库中。然后,它检查它当前是公共的还是私有的。如果为private,则返回访问代码;如果为public,则返回空字符串

这是端点控制器:

public function getAc($eventId) {
    // Pull event
    $event = $this->eventService->api->getEventForce($eventId);

    // If no access code for the event, generate one and update event record accordingly
    if ($event->access_code == null) {

        $access_code = $this->generateAccessCode();
        DB::update('update events set access_code = ? where id = ?', [$access_code, $eventId]);

        // Load updated event from DB.
        $event = $this->eventService->api->getEventForce($eventId);
    }

    // Is the event currently private? return access code
    if ($event->privacy=='private') {
        return $event->access_code; // HERE: value comes back from the API but on MySQL Workbench it's still null.
    }

    // Is it public ? return empty string.
    else {
        return '';
    }
}
我的问题是,即使一切按预期进行。创建access_代码时,它确实会从api返回


然而,当我检查MySQL工作台(连接到AWS实例)上的记录时,它仍然是空的!事件,但我使用API端点将其作为非空值从数据库中提取。

对您的代码有点困惑。通过调试,我建议检查您的API是否存在此问题。从我看到的情况来看,你正在这样做:

  • 向API请求ID为1的事件
  • 检查事件是否有参数
  • 如果没有参数,则使用本地数据库更新
  • 所以我要问的是,如果问题出在API上,为什么要使用DB的本地实例进行更新?此外,是否可以使用事件解决此问题?(我将给你们的班级打电话,而不是事件,以免混淆)

    例如:

    <?php
    
    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Party extends Model {
        public $table = 'parties';
        public $fillable = [];
    
        public static function boot() {
            parent::boot();
    
            static::creating(function($party) {
                //create some fancy access code
                $access_code = 'heyyyy';
                //Check not manually set 
                if (!isset($party->attributes['access_code']) || is_null($party->attributes['access_code'])) {
                    $party->access_code = $access_code;
                }
            }
        }
    }