小编Ste*_*zon的帖子

将VueJS数据属性重置为初始值

我有一个组件,通过传入的组件提供初始数据属性prop并存储在数据变量中:

<component :propvar="true"></component>

data() {
  return {
    localvar: this.propvar,
    localvar2: true
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够在使用如下方法点击"重置"按钮时将数据变量恢复为此prop值:

methods: {
  reset() {
    Object.assign(this.$data, this.$options.data());
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是数据变量是undefined在通过this.options.data()以下方式引用prop的值时:

console.log(this.$options.data()); => Object {localvar: undefined, localvar2: true}

示例小提琴

javascript vue.js vue-component vuejs2

6
推荐指数
1
解决办法
3742
查看次数

在 Laravel 模型中创建自定义变量/属性

我正在尝试在 Laravel 模型中创建自定义属性。该属性对于所有模型实例都是相同的(静态?)。目标是在创建模型实例时使用此属性填充选择下拉列表。例子:

class User extends Model
{
    protected $table = 'users';
    protected $guarded = [ 'id' ];
    public $timestamps = true;

    protected $genders = ['male'=>'Male', 'female'=>'Female'];  //custom

    public static function getGenderOptions() {
        return $genders;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在构建表单时,我可以这样做:

// UserController.php
$data['select_options'] = User::getGenderOptions();
return view('user.create', $data);

// create.blade.php
{!! Form::select( 'gender', $select_options ) !!} 
Run Code Online (Sandbox Code Playgroud)

这导致我收到错误:

Undefined variable: genders
Run Code Online (Sandbox Code Playgroud)

我试图防止所有选择选项使我的控制器变得混乱,因为还有一些其他选项我没有包括在内。

谢谢。

php model laravel laravel-5 laravel-blade

4
推荐指数
1
解决办法
2万
查看次数