Server : nginx/1.20.1
System : Linux iZ2ze9ojcl78uluczwag69Z 4.18.0-240.22.1.el8_3.x86_64 #1 SMP Thu Apr 8 19:01:30 UTC 2021 x86_64
User : www ( 1000)
PHP Version : 7.3.28
Disable Function : passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/0531yanglao.com/app/common/model/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/0531yanglao.com/app/common/model/Sojourn.php
<?php
namespace app\common\model;

use think\Model;


class Sojourn extends BaseModel
{
    protected $pk = 'sid';

    protected $type = [
        'pics'  => 'array',
    ];

    public static function onAfterDelete($data)
    {
        Attachment::del($data->filename);
        if($data->pics) {
            foreach ($data->pics as $item) {
                Attachment::del($item['url']);
            }
        }

    }


    public function comments()
    {
        return $this->morphMany(Comment::class, 'table', 'sojourn_comment');
    }

    public function city()
    {
        return $this->belongsTo(SojournCity::class, 'city_id')->bind(['city_name'=>'title']);
    }

    public function setRecommendAttr($value)
    {
        return $value ? implode(',', $value) : '';
    }

    public function getRecommendAttr($value)
    {
        return $value ? explode(',', $value) : [];
    }


    public function setLocationAttr($value)
    {
        if(isset($value) && is_array($value)) {
            return implode(',', $value);
        }

        return '';
    }

    public function getLocationAttr($value)
    {
        if(!empty($value)) {
            return explode(',', $value);
        }

        return [];
    }

    public function setServiceAttr($value)
    {
        if(isset($value) && is_array($value)) {
            return implode(',', $value);
        }

        return '';
    }

    public function getServiceAttr($value)
    {
        if(!empty($value)) {
            return explode(',', $value);
        }

        return [];
    }


    public function getTypeNameAttr($value, $data)
    {
        if($data['type']) {
            $attr = Dictionary::getDataAttr(2, $data['type']);
            return implode('', $attr);
        }

        return '';
    }

    public function getLnstitutionalNatureNameAttr($value, $data)
    {
        if($data['lnstitutional_nature']) {
            $attr = Dictionary::getDataAttr(3, $data['lnstitutional_nature']);
            return implode('', $attr);
        }

        return '';
    }

    public function getTagsNameAttr($value, $data)
    {
        if($data['type']) {
            $attr = Dictionary::getDataAttr(4, $data['tags']);
            return $attr;
        }

        return '';
    }

    public function getCityNameAttr($value, $data)
    {
        $city = SojournCity::detail($data['city_id']);

        return $city['title'] ?? '';
    }

    /*public function getLocationNameAttr($value, $data)
    {
        if($data['type']) {
            $attr = Dictionary::getDataAttr(7, $data['location']);
            return $attr;
        }

        return [];
    }*/

    public function getServiceNameAttr($value, $data)
    {
        if($data['type']) {
            $attr = Dictionary::getDataAttr(8, $data['location']);
            return $attr;
        }

        return [];
    }
}