Home > PHP Framework > Laravel > body text

Share a guide to writing suggestions in Laravel

藏色散人
Release: 2021-05-08 08:58:22
forward
1728 people have browsed it

Below, the laravel tutorial column will share with you a guide on how to write suggestions for Laravel. I hope it will be helpful to friends who need it!

Laravel is an elegant framework that also provides a lot of flexible and magical writing methods. But the more flexible it is, there may be minor problems in some aspects.

The following is a list of writing methods that Laravel does not recommend, for discussion and reference only. If possible, please share your opinion in the comments section.

Request problem

Request parameters can be obtained through dynamic attributes, such as the following writing:

$name = $request->name;
Copy after login

This writing method is not recommended because if the attribute name If it is an attribute of the original class such as query or content, unexpected effects will occur. Unless you memorize all the keywords of this type (even if you remember all the attributes, you can't guarantee whether new attributes will be added in the next version), otherwise you will encounter this pit sooner or later. It is not recommended to use it. It is recommended to use the following method:

// 可以用这种方式
$name = $request->input('name');
// 或用这种方式
$input = $request->all();
$name = $input['name'];
Copy after login

Summary: Do not use the request dynamic attribute.

Model appends

class User extends Model
{
  protected $appends = ['is_adult'];
  public function getIsAdultAttribute()
  {
      return $this->attribute['age'] > 18;
  }
}
Copy after login

getXxxAttribute is a very useful feature, but if append is automatically appended in the model, it will cause many problems, such as when you select , there is no age field, but the append field will still be added for you, which sometimes causes a lot of problems. It is recommended not to use the $append attribute. Load this property at the controller layer when needed.

// model
class User extends Model
{
  public function getIsAdultAttribute()
  {
      return $this->attribute['age'] > 18;
  }
}
// controller
$user = User::first();
$user->append('is_adult');
Copy after login

Summary: Do not use model appends.

Model's dynamic properties

// 第1种写法
$user = User::first();
// ?? 此动态属性如果是表字段名称是如 exists 等就会出问题。
$name = $user->name;
// 第2种写法更安全
$user = User::first()->toArray();
$name = $user['name'];
Copy after login

Model also has dynamic properties when using objects, which will also cause conflict problems (generally unlikely to be triggered), but the data table Keywords should not appear in the field as much as possible. (Although the second way of writing is safer, I believe more people prefer the first way of writing. We can just avoid the following keywords in database fields. I also like to use the first way of writing.)

// /vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php 
exists,
incrementing
timestamps
wasRecentlyCreated
Copy after login

This article will be updated from time to time. I hope people who use Laravel can share your usage suggestions.

The above is the detailed content of Share a guide to writing suggestions in Laravel. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:learnku.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template