javascript

923 经验值

问题1.把收藏表的数据按时间倒序排列

// User.php
class User extends Model
{
    public function favorites()
    {
        return $this->hasMany('App\Favorites')->orderBy('created_at', 'desc');
    }
}

问题2.收藏表里的数据使用paginate分页

// user.blade.php
@foreach($users as $user)
    <h4>{$user->name}的收藏列表:</h4>
    <ul>
        @foreach($user->favorites as $favorite)
            <li>{$favorite->site_title}: {$favorite->site_url}</li>
        @endforeach
    </ul>
    {$user->favorites()->links()}
@endforeach

between:min,max
字段值需介于指定的 min 和 max 值之间。字串、数值或是文件都是用同样的方式来进行验证。
digits_between:min,max
字段值需为数字,且长度需介于 min 与 max 之间。

方案一:
在 UserRequest 中想办法


    protected $create = [
        'email'=> 'required|unique:users',
        'name'=> 'required',
        ...
    ];

    protected $update = [
        'name'=> 'required',
        ...
    ];
    
    public function rules()
    {
        if ($this->isMethod('get')) return [];
        if ($this->is('*/create')) return $this->create;
        else if ($this->is('*/update')) return $this->update;
        else return [];
    }

方案二:
在 UserController 中想办法


public function update(Request $request)
{
   $form_data = $request->except(['_token', 'email']);

   $user = User::where('email', $request->email)->first();
   $user->fill($form_data);
   $user->save();
}

方案三:
在 update 视图中想办法


<form action="{ route('update') }" method="POST">
   Email: <input type="text" name="email" value="{ $user->email }" disabled>
   Name: <input type="text" name="name" value="{ $user->name }">
   ...
</form>

访问器创建成功后,如果该添加属性想每次都出现在查询结果中时:

protected $appends = ['first_name'];

public function getFirstNameAttribute() {
    ....
}

否则的话,并不需要向appends添加,直接调取就可以:

$user = User::first();
dd($user->first_name);

找到一个解决这类问题的好方法,特来和你分享一下!
利用 Eloquent 中的 orderByRaw
User::orderByRaw('(yuwen + shuxue + yingyu) desc')->paginate(10);

->paginate(10)->sortBy(‘total’);

这样是不是只是10笔数据的 total 排序呢?

->paginate(10)->sortBy(‘total’);

这样是不是只是10笔数据的 total 排序呢?

->paginate(10)->sortBy(‘total’);

这样是不是只是10笔数据的 total 排序呢?

谢谢回答!

我试了一下,如果用collection的sortBy的话
->paginate(10)方法就用不了了啊?!