【问题标题】:Laravel - How to execute store resource?Laravel - 如何执行商店资源?
【发布时间】:2021-01-02 08:00:00
【问题描述】:

我正在创建一个 CRUD 应用程序。但是当我在方法存储中编码时,我遇到了一个问题:我正在尝试创建一个变量$contact = new Contact()。这是消息:Undefined type 'App\Contact'

这个 ContactController.php

    use App\Contact;
    ....
    public function store(Request $request)
    {
        $request->validate([
            'first_name'=>'required',
            'last_name'=>'required',
            'email'=>'required'
        ]);
        $contact = new Contact([
            'first_name' => $request->get('first_name'),
            'last_name' => $request->get('last_name'),
            'email' => $request->get('email'),
            'job_title' => $request->get('job_title'),
            'city' => $request->get('city'),
            'country' => $request->get('country')
        ]);
        $contact->save();
        return redirect('/contacts')->with('success', 'Contact saved!');

    }

我通过这个链接做到了:https://medium.com/techiediaries-com/laravel-7-crud-tutorial-build-a-crud-app-with-mysql-and-bootstrap-4-4ed8e94f2db0

【问题讨论】:

标签: php mysql laravel laravel-5 crud


【解决方案1】:

以下是您创建的选项:
选项 1:

$contact = Contact::create([
    'first_name' => $request->get('first_name')
]);

选项 2:

$contact = new Contact();
$contact->first_name = 'test';
$contact->save();

同样在您的联系人类中,检查您的命名空间。并且,将控制器中的命名空间用作:

使用 App\Models\Contact; //因为你说你的contact.php在models文件夹里面

【讨论】:

    【解决方案2】:

    你保持控制器简单干净使用它

    use App\Contact; // if use laravel 7
    use App\Models\Contact // if use laravel 8
    ....
    public function store(Request $request, Contact $contact)
    {
        $request->validate([
            'first_name'=>'required',
            'last_name'=>'required',
            'email'=>'required'
        ]);
    
         $contact->create($request->all());
        
        return redirect('/contacts')->with('success', 'Contact saved!');
    
    }
    

    在功能更新中

    use App\Contact;
        ....
        public function update(Request $request, Contact $contact)
        {
            $id = $contact->id; // if use Route resource 
            $id = $request->id; // if use Route Post
    
    
            $request->validate([
                'first_name'=> 'required',
                'last_name'=>'required',
                'email'=>'required'
            ]);
    
             $date = $request->except(['_token','_method']);
    
             $contact->where('id', $id)->update($date);
            
            return redirect('/contacts')->with('success', 'Contact updated!');
    
        }
    

    【讨论】:

    • 非常感谢,我的问题已经解决了。
    猜你喜欢
    • 2019-08-16
    • 1970-01-01
    • 2020-03-19
    • 2013-07-12
    • 2018-02-13
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多