Laravel框架中Form表单Get请求搜索(在此感谢[https://simon8.com])
首先看一下HTML部分的Form表单
<form role="search" method="get" id="searchform" action="{{ route('mysearch') }}">
<input type="search" name="keyword" placeholder="关键字" required>
<button type="submit"><span class="ion-ios-search-strong"></span></button>
</form>
PHP文件中的路由配置
Route::get('/search','Home\SearchController@index')->name('mysearch');
PHP文件中的控制器部分
<?php namespace App\Http\Controllers\Home; use App\Http\Model\Home\Article;
use Illuminate\Http\Request;
use App\Http\Requests; class SearchController extends CommonController
{
//请求地址
public function index(Request $request){
$getKeyWord = $request->keyword;
$all_article = (new Article)->searchArticle($getKeyWord);
// foreach($all_article as $v){
// $v->title = str_ireplace($getKeyWord,'<font color="#FF0000">'
.$getKeyWord.'</font>',$v->title);
// }
return view('home.search.index',compact('all_article','getKeyWord'));
}
}
要修改的文件路径
J:\wamp64\www\laravel\vendor\laravel\framework\src\Illuminate\Pagination\UrlWindowPresenterTrait.php
首先修改的是第一个方法getLinks
protected function getLinks()
{
$html = '';
$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$pase_url = parse_url($url);
$url_query = '';
if(strpos($url,'search?keyword') !== false){
$url_query = $pase_url['query'];
$url_query = strpos($url_query,'&') !== false ? substr($url_query,0,strpos($url_query,'&'))
: $url_query;
}
if (is_array($this->window['first'])) { //在测试中,始终走的是当前流程,所以给传了一个字符串类型的参数
$html .= $this->getUrlLinks($this->window['first'],$url_query);
} if (is_array($this->window['slider'])) {
$html .= $this->getDots();
$html .= $this->getUrlLinks($this->window['slider']);
} if (is_array($this->window['last'])) {
$html .= $this->getDots();
$html .= $this->getUrlLinks($this->window['last']);
}
return $html;
}
找到当前类中getUrlLinks方法,然后修改,直接在当前方法内处理返回了
protected function getUrlLinks(array $urls,$url_query = '')
{
$html = '';
foreach ($urls as $page => $url) {
$html .= $this->getPageLinkWrapper($url, $page);
}
if($url_query != '' && strpos($url_query,'keyword') !== false){ $html_str = htmlspecialchars($html); if(strpos($html_str,'search?') !== false){
$html = htmlspecialchars_decode(str_replace('search?','search?'.$url_query.'&',$html_str));
}
}
return $html;
}
经过测试行得通
Laravel框架中Form表单Get请求搜索(在此感谢[https://simon8.com])的更多相关文章
- django框架中form表单Post方法无法提交 Forbidden (403) CSRF verification failed. Request aborted.
问题如图: 解决方法: 在视图函数中引入并使用装饰器 from django.views.decorators.csrf import csrf_exempt @csrf_exempt
- laravel中form表单,ajax传值没反应
laravel中form表单,ajax传值没反应时,可能是令牌有问题. form中添加: {{csrf_token()}} ajax中添加: data: {'page': page, '_token' ...
- Python的Django框架中forms表单类的使用方法详解
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- 第三百一十一节,Django框架,Form表单验证
第三百一十一节,Django框架,Form表单验证 表单提交 html <!DOCTYPE html> <html lang="en"> <head& ...
- Django框架 之 Form表单和Ajax上传文件
Django框架 之 Form表单和Ajax上传文件 浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html 1 2 3 4 5 6 7 <h3& ...
- MVC中Form表单的提交
概述 Web页面进行Form表单提交是数据提交的一种,在MVC中Form表单提交到服务器.服务端接受Form表单的方式有多种,如果一个Form有2个submit按钮,那后台如何判断是哪个按钮提交的数据 ...
- django中form表单的提交:
一,关于表单: 表单在百度百科的解释: 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域 ...
- html中form表单的使用方法和介绍
from表单的使用方法 一.表单赏析 二.了解表单功能:用于搜集不同类型的用户输入的内容 有了表单,网页的内容可以由用户自己创建,那么对于网页来说,我们既是网页创建都者,也是网页的消费者. 三.常用的 ...
- 使用form表单提交请求如何获取后台返回的数据?
问题描述 一般的form表单提交是单向的:只能给服务器发送数据,但是无法获取服务器返回的数据,也就是无法读取HTTP应答包. 想要真正的半双工通讯一般需要使用Ajax, 但是Ajax对文件传输也很麻烦 ...
随机推荐
- Windows核心编程&错误处理
知识概要 (1) MAKELANGID Windows宏,用一个来主语言标识和从语言标识创建一个语言标识符 MAKELANGID(ushort usPrimaryLanguage, ushort us ...
- BST,AVL,B,B+,B*,红黑树
BST(右)和AVL(左) 比较:AVL树每个结点的左右子树的深度差的绝对值不大于1 B - tree 特点:所有结点都包含数据信息,不同查询的效率不同,特殊的:二阶B树就是AVL,三阶B树就是2-3 ...
- Nginx的安装(笔记)
0, 先决条件Nginx 依赖 zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre安装命令:yum -y install make z ...
- 使用keepAlive对上下拉刷新列表数据 和 滚动位置细节处理 - vue
[前言] 使用vue处理项目中遇到列表页面时,之前项目中总会有一些细节问题处理得不太好,这里总结一下,以便优化以后的代码.如下: 1. 使用mint-ui中的LoadMore组件上下拉刷新时,有时无法 ...
- java web response提供文件下载功能
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- 将centos_yum源更换为阿里云(官方文档)
http://mirrors.aliyun.com/help/centos?spm=5176.bbsr150321.0.0.d6ykiD 1.备份 mv /etc/yum.repos.d/CentOS ...
- 10个实用的 Linux 网络和监控命令[转]
本文列出了10个基础的每个Linux用户都应该知道的网络和监控命令.网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslooku ...
- 强大的API测试工具Hitchhiker v0.9 基于UI的断言测试,回顾2017
v0.9是Hitchhiker在2017农历年的最后一个版本,而起点正是刚过完2016农历年,农历2018即将到来,一年轮回,今天写点东西稍微回顾下hitchhiker的2017. 先还是说v0.9, ...
- TensorflowTutorial_一维数据构造简单CNN
使用一维数据构造简单卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 神经网络对于一维数据非常重要,时序数据集.信号处理数据集和一些文本嵌入数据集都是一维数据,会频繁的使用到神经网 ...
- 忽略node.js服务中favicon.icon的请求
场景 一个最简单的node.js的http服务 const http = require('http'); const server = http.createServer(function(req, ...