我有麻烦如何推动或保存数据的形式,供用户把。我有点新的框架和教程或文档从框架本身是不是有用的。有人能找到一个解决方案吗?这里是它的路线。
<?php
namespace Config;
// Create a new instance of our RouteCollection class.
$routes = Services::routes();
/*
* --------------------------------------------------------------------
* Router Setup
* --------------------------------------------------------------------
*/
$routes->setDefaultNamespace('App\Controllers');
$routes->setDefaultController('Pages');
$routes->setDefaultMethod('view');
$routes->setTranslateURIDashes(false);
$routes->set404Override();
// The Auto Routing (Legacy) is very dangerous. It is easy to create vulnerable apps
// where controller filters or CSRF protection are bypassed.
// If you don't want to define all routes, please use the Auto Routing (Improved).
// Set `$autoRoutesImproved` to true in `app/Config/Feature.php` and set the following to true.
// $routes->setAutoRoute(false);
/*
* --------------------------------------------------------------------
* Route Definitions
* --------------------------------------------------------------------
*/
// We get a performance increase by specifying the default
// route since we don't have to scan directories.
use App\Controllers\News;
use App\Controllers\Pages;
use App\Controllers\Form;
$routes->get('/', [Pages::class, 'view'], ['as' => 'pages.view']);
// $routes->match(['get', 'post'], 'create', [News::class, 'create']);
// $routes->get('news/(:segment)', [News::class, 'view']);
// $routes->get('news', [News::class, 'index']);
// $routes->get('pages', [Pages::class, 'index']);
// $routes->get('(:segment)', [Pages::class, 'view']);
$routes->get('form', [Form::class, 'index'], ['as' => 'form.index']);
$routes->post('form-add', [Form::class, 'add'], ['as' => 'form.add']);
/*
* --------------------------------------------------------------------
* Additional Routing
* --------------------------------------------------------------------
*
* There will often be times that you need additional routing and you
* need it to be able to override any defaults in this file. Environment
* based routes is one such time. require() additional route files here
* to make that happen.
*
* You will have access to the $routes object within that file without
* needing to reload it.
*/
if (is_file(APPPATH . 'Config/' . ENVIRONMENT . '/Routes.php')) {
require APPPATH . 'Config/' . ENVIRONMENT . '/Routes.php';
}
这是控制器
<?php
namespace App\Controllers;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\Files\File;
use App\Controllers\BaseController;
use App\Models\News as News;
class Form extends BaseController
{
public function index()
{
helper(['form', 'url']);
return view('templates/header', [
'title' => ucfirst("Upload")
])
. view('pages/form')
. view('templates/footer');
}
public function add()
{
helper(['form', 'url']);
$request = service('request');
$title = $request->getPost('title');
$name = $request->getPost('name');
$img = $request->getPost('image');
$response = [
'title' => $title,
'name' => $name,
'image' => $img
];
return view('templates/header')
. view('pages/load')
. view('templates/footer');
}
}
这是表格本身
<div class="container">
<div class="row">
<div class="col-md-6 offset-md-3">
<form action="<?= route_to('form.add') ?>" method="post" enctype="multipart/form-data">
<?= csrf_field() ?>
<div class="form-group">
<label for="name">Name:</label>
<input type="text" class="form-control" required id="name" name="name">
</div>
<div class="form-group">
<label for="title">Title:</label>
<input type="text" class="form-control" required id="title" name="title">
</div>
<div class="form-group">
<label for="image-link">Image Link:</label>
<input type="text" class="form-control" required id="image" name="image">
</div>
<button type="submit" class="mt-25 btn action-1 w-full" value ="Submit">Submit</button>
</form>
</div>
</div>
</div>
我试着按照文档上的创建新闻的东西,它不工作,它不保存到数据库本身,当我看服务器端,它返回的页面,我试图重定向后,提交的形式
1条答案
按热度按时间hrirmatl1#
首先:带有点的命名路由不是一个好主意。请使用连字符或其他名称。
在控制器方法中,不向数据库写入任何内容,只向数组赋值,但从不对数组执行任何操作。
正在保存到数据库:
将数据返回到视图:
如果你完全按照文档中的“构建你的第一个应用程序”一节来做,它肯定会工作(我个人成功地做了几次)。