laravel 常用辅助函数

abort_if()
这个辅助方法将会抛出一个异常如果符合满足的要求。第三个可选参数为抛出异常的消息,第四个为header数组。
abort_if(! Auth::user()->isAdmin(), 403); abort_if(! Auth::user()->isAdmin(), 403, 'Sorry, you are not an admin'); abort_if(Auth::user()->isCustomer(), 403);
这个方法最主要的用处就是精简类似下面的代码,通过使用 abort_if() 能够只用一行代码实现同样的功能。
// In "admin" specific controller public function index() { if (! Auth::user()->isAdmin()) { abort(403, 'Sorry, you are not an admin'); } } // better! public function index() { abort_if(! Auth::user()->isAdmin(), 403);


route()
'route()'方法能够生成已经命名的路由,可选的第二个参数将会传递给路由的参数。
Route::get('burgers', 'BurgersController@index')->name('burgers'); route('burgers'); // http://example.com/burgers route('burgers', ['order_by' => 'price']); // http://example.com/burgers?order_by=price Route::get('burgers/{id}', 'BurgersController@show')->name('burgers.show'); route('burgers.show', 1); // http://example.com/burgers/1 route('burgers.show', ['id' => 1]); // http://example.com/burgers/1 Route::get('employees/{id}/{name}', 'EmployeesController@show')->name('employees.show'); route('employees.show', [5, 'chris']); // http://example.com/employees/5/chris route('employees.show', ['id' => 5, 'name' => 'chris']); // http://example.com/employees/5/chris route('employees.show', ['id' => 5, 'name' => 'chris', 'hide' => 'email']); // http


data_get()
data_get()辅助方法能够让你使用[.]符号来获取数组或者对象中的值。'array_get()'方法也是同样的道理。如果数组或者对象的key不存在的话,这个方法第三个可选参数可以设置一个默认值。
$array = ['albums' => ['rock' => ['count' => 75 ]]]; $count = data_get($array, 'albums.rock.count'); // 75 $avgCost = data_get($array, 'albums.rock.avg_cost', 0); // 0 $object->albums->rock->count = 75; $count = data_get($object, 'albums.rock.count'); // 75 $avgCost = data_get($object, 'albums.rock.avg_cost', 0); // 0


optional()
这个方法允许你来获取对象的属性或者调用方法。如果该对象为null,那么属性或者方法也会返回null而不是引起一个错误
// User 1 exists, with account $user1 = User::find(1); $accountId = $user1->account->id; // 123 // User 2 exists, without account $user2 = User::find(2); $accountId = $user2->account->id; // PHP Error: Trying to get property of non-object // Fix without optional() $accountId = $user2->account ? $user2->account->id : null; // null $accountId = $user2->account->id ?? null; // null // Fix with optional() $accountId = optional($user2->account)->id; // null
最后修改:2019-07-21 22:50:29
0