Php 如何在laravel中将特征用作路线控制器方法?

Php 如何在laravel中将特征用作路线控制器方法?,php,laravel,Php,Laravel,尝试将文件上载发送到此路由时出现此错误: Target [App\Http\Controllers\Traits\FileUploadTrait] is not instantiable. 如何使用特质作为路线controller@method?特征不可调用。。。这意味着:)你不能给他们打电话:Dlol,对不起-我忍不住。。。无论如何,试试这样的方法:) 您不能将Trait用作控制器,因为Trait不是类,但实际上它们“是在单一继承语言(如PHP)中进行代码重用的机制” 一个特质是不可能一蹴而

尝试将文件上载发送到此路由时出现此错误:

Target [App\Http\Controllers\Traits\FileUploadTrait] is not instantiable.

如何使用特质作为路线controller@method?

特征不可调用。。。这意味着:)你不能给他们打电话:Dlol,对不起-我忍不住。。。无论如何,试试这样的方法:)


您不能将Trait用作控制器,因为Trait不是类,但实际上它们“是在单一继承语言(如PHP)中进行代码重用的机制”

一个特质是不可能一蹴而就的,这意味着在引擎盖下,拉威尔做不到
$controller=newfileuploadtrait()
使用它

要使用特征,必须将其包含在某个类中,例如:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Intervention\Image\Facades\Image;

class MahController extends Controller {
   use App\Http\Controllers\Traits\FileUploadTrait;
}
然后定义路由以使用您定义的类。

您根本不能。创建一个单独的类并
使用它。
Route::post('upload/files', ['uses' => 'Traits\FileUploadTrait@saveFiles', 'as' => 'media.upload']);
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Intervention\Image\Facades\Image;

class MahController extends Controller {
   use App\Http\Controllers\Traits\FileUploadTrait;
}
class MyController {
    use FileUploadTrait;
}