我的特质功能未在班级中识别

时间:2018-09-22 16:32:36

标签: laravel function traits

这是我的代码 这是我在Trait中编写的代码,我定义了函数类别。

namespace App\Traits;
use App\Models\Category;
trait Categorizable
{
     public function categories()
     {
         return $this->morphToMany(Category::class, 'Categorize');
     }
}

和控制器中 并在控制器内部使用此功能

public function store(Request $request)
{
    $this->validate($request, [
        'name' => 'required',
        'vahed_id' => 'required',
        'min_limit' => 'required',
        'max_limit' => 'required',
    ], [
        'name.required' => 'افزودن نام کالا اجباری می باشد',
        'vahed_id.required' => 'افزودن واحد اجباری می باشد',
        'min_limit.required' => 'افزودن حد کمبود اجباری می باشد',
        'max_limit.required' => 'افزودن حد کالای اضافه اجباری می باشد',
    ]);
    $new_product_data = Product::create([
        'name' => $request->input('name'),
        'price' => $request->input('price'),
        'vahed_id' => $request->input('vahed_id'),
        'min_limit' => $request->input('min_limit'),
        'max_limit' => $request->input('max_limit'),
        'comment' => $request->input('comment'),
        'barcode' => $request->input('barcode'),
        'view' => $request->input('view'),
    ]);
    if ($new_product_data){
        if ($request->has('categorize')){
            $new_product_data->categories()->sync($request->input('categorize'));
        }
    }
    return redirect()->route('admin_user.dashboard.pishniaz.product.product')->with('success', 'محصول جدید با موفقیت ایجاد گردید.');

}

这是我的错误: SQLSTATE [42S02]:未找到基表或视图:1146表'laranbar.categorizes'不存在(SQL:从category_category_id中选择Categorizes,其中Categorize_id = 18和{{1 }} = App \ Models \ Product)

如果我这样说:     $ new_product_data-> $ this-> categories()-> sync($ request-> input('categorize'));

这是我的错误: App \ Http \ Controllers \ Admin \ ProductsController类的对象无法转换为字符串

1 个答案:

答案 0 :(得分:1)

添加您的App\Product模型

use App\Traits\Categorizable;
class Product extends Model 
{
    use Categorizable;

}