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();
}
}
{{ nComment.author.nickname }}
{{ nComment.time }}