【问题标题】:Laravel - makeVisible doesn't make hidden attribute visibleLaravel - makeVisible 不会使隐藏属性可见
【发布时间】:2020-06-10 04:29:29
【问题描述】:

我有以下代码:

$model = new coretable;
    log::info($model->all());
    $model = $model->makeVisible('id_coretable');
    log::info($model->all());

在我的流明日志中,我得到以下结果:

[2020-02-26 10:14:19] local.INFO: [{"Internal_key":"TESTKEY_1"},{"Internal_key":"TESTKEY_2"},{"Internal_key":"TESTKEY_3"},{"Internal_key":"TESTKEY_4"},{"Internal_key":"TESTKEY_5"}]  
[2020-02-26 10:14:19] local.INFO: [{"Internal_key":"TESTKEY_1"},{"Internal_key":"TESTKEY_2"},{"Internal_key":"TESTKEY_3"},{"Internal_key":"TESTKEY_4"},{"Internal_key":"TESTKEY_5"}]

我希望"id_coretable" 属性出现在log::info() 的第二个输出中,但事实并非如此。 这是为什么? 这里是coretable的模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class CoreTable extends Model
{

    /**
   * The table associated with the model.
   *
   * @var string
   */
   protected $table = 'coretable';


  /**
   * The attributes that are mass assignable.
   *
   * @var array
   */
  protected $fillable = [
    'Internal_key'
  ];

  protected $hidden = [
    'id_coretable',
    'created_at',
    'updated_at'
  ];

  protected $primaryKey = 'id_coretable';



  /**
   * Many-To-Many relationship with User-Model.
   */
  public function extensiontable_itc()
  {
    return $this->hasOne('App\extensiontable_itc', 'coretable_id');
  }

  public function extensiontable_sysops()
  {
    return $this->hasOne('App\extensiontable_sysops', 'coretable_id');
  }

  public function inaccessibletable()
  {
    return $this->hasOne('App\inaccessibletable', 'coretable_id');
  }
}

我不知道为什么 makeVisible() 对效果没有任何影响。

【问题讨论】:

    标签: php laravel eloquent orm lumen


    【解决方案1】:

    您创建的初始模型对从all() 函数接收到的模型没有任何影响。这是具有初始 $hidden 数组的新模型的集合。

    要更改显示的值,您必须在收到的集合上调用 makeVisible

    $model = new coretable;
    log::info($model->all());
    log::info($model->all()->makeVisible('id_coretable'));
    

    也建议静态调用查询函数,这样就不需要创建初始模型:

    log::info(coretable::all()->makeVisible('id_coretable'));
    

    【讨论】:

      猜你喜欢
      • 2013-05-30
      • 2022-01-16
      • 2010-11-02
      • 2012-05-10
      • 2013-06-01
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多