【问题标题】:Can't get data to save in MySQL using Laravel无法使用 Laravel 将数据保存在 MySQL 中
【发布时间】:2017-07-16 06:22:06
【问题描述】:

我正在尝试将工单数据保存在数据库中,当我提交表单时,我没有收到任何错误,但它不会将数据插入数据库。添加我的路线只是添加随机文本,因为帖子

控制器代码

public function store(Request $request)
{
    $this->validate($request, [
       'name' => 'required',
        'title' => 'required|min:15',
        'category' => 'required',
        'priority' => 'required',
        'message' => 'required|min:100',
    ]);

    $ticket = new Ticket([
        'user_id' => Auth::user()->id,
        'category_id' => $request->input('category'),
        'ticket_id' => strtoupper(str_random(10)),
        'name' => $request->input('name'),
        'title' => $request->input('title'),
        'priority_id' => $request->input('priority'),
        'message' => $request->input('message'),
    ]);

    $ticket->status_id = '1';
    $ticket->save();

    return 'Success';
}

型号代码

class Ticket extends Model
{

    protected $fillable = [
      'user_id', 'category_id', 'ticket_id', 'name', 'title', 'priority_id', 'message', 'status_id',
    ];

    public function category()
    {
        return $this->belongsTo(Category::class);
    }

    public function priority()
    {
        return $this->belongsTo(Priority::class);
    }

    public function status()
    {
        return $this->belongsTo(Status::class);
    }

    public function comments()
    {
        return $this->hasMany(Comment::class);
    }

    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

路线

Route::get('/', 'HomeController@index')->name('home');
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/compliance', 'HomeController@Compliance')->name('compliance');
Route::get('/messages', 'HomeController@Messages')->name('messages');
Route::get('/tickets', 'TicketsController@userTickets')->name('tickets');
Route::get('/tickets/create', 'TicketsController@create')->name('tickets/create');
Route::post('/tickets/store', 'TicketsController@store');

【问题讨论】:

  • 你的 MySQL 表是什么名字?
  • tickets 我已经尝试添加以下 protected $table = 'tickets';
  • 我看到您发布了回复,但是当我刷新页面时它消失了您是否删除了评论?
  • 尝试在您的退货声明之前添加dd($ticket);,并告诉我们它的内容
  • 一旦我按下提交按钮,页面就会重新加载,我什么也得不到

标签: php mysql laravel frameworks laravel-5.3


【解决方案1】:

感谢所有帮助,我发现控制器有两个错误,我花了 2 天时间才弄明白,哈哈

        $this->validate($request, [
        'name' => 'required', // I removed this
        'title' => 'required|min:15',
        'category' => 'required',
        'priority' => 'required',
        'message' => 'required|min:100',
    ]);

在$ticket中

       $ticket = new Ticket([
        'user_id' => Auth::user()->id,
        'category_id' => $request->input('category'),
        'ticket_id' => strtoupper(str_random(10)),
        'name' => $request->input('name') // I replaced this with 'name' => Auth::user()->name,
        'title' => $request->input('title'),
        'priority_id' => $request->input('priority'),
        'message' => $request->input('message'),
    ]);

【讨论】:

    猜你喜欢
    • 2018-07-23
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多