Laravel6如何创建traits文件?


原文地址:Laravel6如何创建traits文件?

在这篇文章中,我将与您分享什么是trais在laravel,以及它如何在我们的laravel应用?在这篇文章中,我将给你一个简单的例子,在你的laravel应用程序中创建你自己的特性,以及它将如何在你的laravel应用程序中使用。但我们首先要知道的是为什么laravel定义了性状?

Traits是什么?

PHP的一个主要问题是你只能继承一个类和任何其他类。这意味着一个类只能从另一个类继承。例如,为了防止代码重复,可能需要从几个不同的类继承方法。在PHP 5.4中添加了一个新的特性,称为Traits,并在Laravel框架中广泛使用。

步骤1:创建traits

在我们的第一步,我们需要在laravel中创建app\Traits\StoreImageTrait.php文件作为Traits。然后把下面的代码放进去。

namespace App\Traits;

use Illuminate\Http\Request;

trait StoreImageTrait {
 public function verifyAndStoreImage( Request $request, $fieldname = 'image', $directory = 'unknown' ) {
 if( $request->hasFile( $fieldname ) ) {
 if (!$request->file($fieldname)->isValid()) {
 flash('Invalid Image!')->error()->important();
 return redirect()->back()->withInput();
 }
 return $request->file($fieldname)->store('image/' . $directory, 'public');
 }
 return null;
 }
}

步骤2:如何在控制器中使用Traits

在创建我们的traits之后,现在我们将看到如何在laravel应用控制器中使用我们创建的特征。

namespace App\Http\Controllers\Admin;

use App\Models\Admin\Post;
use Illuminate\Http\Request;
use App\Traits\StoreImageTrait;

class PostController extends Controller
{
 use StoreImageTrait;

 public function store(CreatePostRequest $request)
 {
 $formInput = $request->all();
 $formInput['image'] = $this->verifyAndStoreImage($request, 'image', 'post');
 $post = Post::create($formInput);
 flash('Post saved successfully.')->success();
 return redirect()->back();
 }
}

评论

登录后评论

服务器优惠活动

Top