我是 CI4 的新手,我已經為此奮斗了好幾個星期。我映射了我的路線,沒有占位符它可以正常作業,但是一旦我添加了占位符,它就會打亂我的視圖。
我已經嘗試了一些改變我的知識但沒有好的結果
路由.php
$routes->setDefaultNamespace('App\Controllers');
$routes->setDefaultController('Login');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override();
$routes->setAutoRoute(true);
$myroutes = [];
$myroutes['login'] = 'Login::index'; //working
$myroutes['logout'] = 'Login::logout'; //working
$myroutes['home'] = 'Home::dashboard'; //working
//User
$myroutes['add_user'] = 'User::create'; //working
$myroutes['view_users'] = 'User::user_list'; //working
//Client
$myroutes['addClient'] = 'Client::create'; //working
$myroutes['clients'] = 'Client::view'; //working
$myroutes['clientProfile/(:num)'] = 'Client::profile/$1'; //not working
$myroutes['rooms'] = 'Home::rooms'; //working
$myroutes['privileges/(:num)'] = 'Home::permissions/$1'; //not working
$routes->map($myroutes);
這是我的控制器腳本。除了組態檔方法 控制器(Client.php)之外,所有其他方法都可以正常作業
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\ClientModel;
class Client extends BaseController
{
public $session;
public $clientModel;
public function __construct()
{
helper('form');
$this->clientModel = new ClientModel();
$this->session = \Config\Services::session();
}
public function create()
{
if (!session()->has('logged_user')) {
return redirect()->to('/login');
}
$data = [
'page_name' => 'Add Client',
'page_title' => 'Add Client | The Ashokas',
];
$data['validation'] = null;
$rules = [
'client_title' => 'required|min_length[2]|max_length[5]',
'first_name' => 'required|min_length[3]|max_length[16]',
'middle_name' => 'required|min_length[3]|max_length[16]',
'last_name' => 'required|min_length[3]|max_length[16]',
'relationship_status' => 'required',
'client_email' => 'required|valid_email|is_unique[clients.client_email]',
'mobile' => 'required|numeric|exact_length[11]',
'gender' => 'required',
'occupation' => 'required',
'workplace' => 'required',
'address' => 'required',
'kin_name' => 'required|min_length[3]|max_length[50]',
'kin_relationship' => 'required',
'kin_mobile' => 'required|numeric|exact_length[11]',
'kin_address' => 'required'
];
if ($this->request->getMethod() == 'post') {
if ($this->validate($rules)) {
$clientdata = [
'client_title' => $this->request->getVar('client_title'),
'first_name' => $this->request->getVar('first_name'),
'middle_name' => $this->request->getVar('middle_name'),
'last_name' => $this->request->getVar('last_name'),
'relationship_status' => $this->request->getVar('relationship_status'),
'client_email' => $this->request->getVar('client_email'),
'mobile' => $this->request->getVar('mobile'),
'gender' => $this->request->getVar('gender'),
'occupation' => $this->request->getVar('occupation'),
'workplace' => $this->request->getVar('workplace'),
'address' => $this->request->getVar('address'),
'kin_name' => $this->request->getVar('kin_name'),
'kin_relationship' => $this->request->getVar('kin_relationship'),
'kin_mobile' => $this->request->getVar('kin_mobile'),
'kin_address' => $this->request->getVar('kin_address'),
'join_date' => date('d-m-Y')
];
if ($this->clientModel->create($clientdata)) {
$this->session->setTempdata('success', 'Client added successfully',3);
return redirect()->to('/clients');
}else{
$this->session->setTempdata('error', 'Sorry! Unable to add client',3);
return redirect()->to(current_url());
}
}else{
$data['validation'] = $this->validator;
}
}
return view('client/add', $data);
}
public function view() {
if (!session()->has('logged_user')) {
return redirect()->to('/login');
}
$data = [
'page_name' => 'Clients',
'page_title' => 'All Clients | The Ashokas',
'clientele' => $this->clientModel->getAllClients()
];
return view('client/view', $data);
}
public function profile($client_id = null) {
if (!session()->has('logged_user')) {
return redirect()->to('/login');
}
$data = [
'page_name' => 'Client Profile',
'page_title' => 'Client Profile | The Ashokas',
];
return view('client/profile', $data);
}
}
預期視圖

我得到的觀點

天才的頭腦應該請幫忙。感謝期待
uj5u.com熱心網友回復:
這看起來您的 javascript 和 css 路徑與您的 html 標頭中的當前檔案夾相關。雖然您在/path1/path2這兩個級別的結構中作業正常,但是當您擁有/path1/path2/1這是三層結構時,它會因相關的 js 和 css 檔案而失敗。
將它們更改為絕對路徑。
你可能有這樣的東西
<link rel="stylesheet" type="text/css" href="../../somefolder/mycss.css">
改成這個
<link rel="stylesheet" type="text/css" href="/appfolder/somefolder/mycss.css">
對 javascript 檔案和影像也做同樣的事情。
uj5u.com熱心網友回復:
嘗試添加 base_url 函式來創建這樣的絕對路徑
<link href="<?= base_url('path/of/your/css.css') ?>" rel="stylesheet">
請注意,path/of/your/css.css存盤在公用檔案夾中
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/414167.html
標籤:
