如何使用 json 响应设置 cookie?
我注意到,至少对我来说,以下命令是唯一可以设置 cookie 的命令:
return Redirect::to('/')
->withCookie(Cookie::make('blog', $cookie_values, 1000));
Run Code Online (Sandbox Code Playgroud)
当然,如果它是一个 ajax 请求,它将返回重定向的目标。
我如何将其转换为 ajax 请求并返回带有 cookie 的 json 响应?
我无法通过代码复制来复制ajax调用.
例如:
$I->sendAjaxPostRequest('login/verify', array('name' => 'name', 'password' => 'password'));
$I->seeResponseIsJson();
Run Code Online (Sandbox Code Playgroud)
不会引起任何错误.但另一方面,如果我做以下事情:
$I->sendAjaxPostRequest('login/verify', array('name' => 'name', 'password' => 'password'));
$I->seeResponseIsJson();
$I->seeResponseContainsJson(['login_failed' => 1]);
//or
$I->grabDataFromJsonResponse('data.login_failed');
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
ErrorException:传递给Codeception的参数2\Module\REST :: arrayHasArray()必须是数组类型,给定null,在C:\ xampp\htdocs\blog\laravel\vendor\codeception\codeception\src\Codeception\Module中调用\ REST.php在485行并定义
我从上面的错误中理解的是,seeResponseContainsJson或grabDataFromJsonResponse在内部会将响应作为第二个参数传递给arrayHasArray.但看起来无论响应总是空的.
另外,如果我执行以下操作:
$I->sendAjaxPostRequest('login/verify', array('name' => 'name', 'password' => 'password'));
var_dump($I->grabResponse());
Run Code Online (Sandbox Code Playgroud)
我收到这个var_dump():
object(Codeception\Maybe)#753 (3) {
["position":protected]=>
int(0)
["val":protected]=>
NULL
["assocArray":protected]=>
NULL
}
Run Code Online (Sandbox Code Playgroud)
使用Codeception,其他所有工作都按预期工作,我正在使用PhpBrowser.
我有三个表user,role,permission,user的hasMany role,role的hasMany permission,我想找出用户谁拥有我给了允许,所以我用whereHas
$user = User::whereHas('roles', function($q) {
$q->whereHas('permissions', $function($q) {
$q->where('name', $value);
});
});
Run Code Online (Sandbox Code Playgroud)
结果是正确的,但如果我想通过更多条件搜索用户,我会给出其他权限值并使用orWhere,它会响应所有拥有任何权限的用户,如何修复它?
$user = User::whereHas('roles', function($q) {
$q->whereHas('permissions', $function($q) {
$q->where('name', $value)->orWhere('name', $value2);
});
});
Run Code Online (Sandbox Code Playgroud) 我做过控制器
Session::flash('message', 'Successfully updated!');
Run Code Online (Sandbox Code Playgroud)
在视野中
@if (Session::has('message'))
<li>{!! Session::get('message') !!}</li>
@endif
Run Code Online (Sandbox Code Playgroud)
但是,当我执行var_dump(Session :: get('message'))时,视图上没有传递任何内容; 我可以查看留言,请帮助我
假设我有这个:
//controllers/BlogController.php
$data["post"] = $post = Blog::recent_post();
$data["posts_related"] = Blog::posts_related($post->category_id,5);
return View::make('blog.home', $data);
//views/sidebars/related.blade.php
@foreach($posts_related as $r)
<p>{{ $r->name }}</p>
@endforeach
//views/blog/home.blade.php
@include('sidebars.related')
Run Code Online (Sandbox Code Playgroud)
我的问题是,我怎么能转移:
$data["posts_related"] = Blog::posts_related($post->category_id,5);
Run Code Online (Sandbox Code Playgroud)
对于视图作曲家来说,因为我似乎无法将参数传递给视图作曲家,但我无法确定.
我感谢任何帮助!
我是laravel 5的新手.我创建了一个用于编辑用户信息的表单,其中填充了来自数据库的信息.在表单验证后,如果我收到错误,我将丢失刚修改的所有信息,并恢复db信息.
我的表单字段如下所示:
<input type="text" name="name" value="{{ $user->name }}" id="name" class="form-control"/>
Run Code Online (Sandbox Code Playgroud)
我希望看到的是这个.如果在编辑期间,用户从字段中清除用户名,并对表单上的不同字段进行其他更改.验证失败后,我希望他最近的更改坚持下去,而不是数据库中的信息.
注意:由于我的表单的性质,我无法将模型绑定到它.
我相信这是一个长镜头,但考虑以下几点:
public function options(array $options = ['route' => '', 'placeholder' => '']) {}
Run Code Online (Sandbox Code Playgroud)
我可以调用该方法,如:
options(['route' => 'search'])
Run Code Online (Sandbox Code Playgroud)
并保持占位符 'placeholder' => ''
是否有任何可能的原合并$options数组新的?
我在 eloquent 中使用 orWhere 时遇到问题。
我有一个团队,这个团队有一些简介。我想获取所有状态 = 1 或状态 = 2 的配置文件。但我无法让它工作。
我的代码是这样的:
$profile = $this->team->profiles->where('status', 1)->find($id);
Run Code Online (Sandbox Code Playgroud)
谢谢:-)
如果网站访问/页面的用户,我希望他重定向到索引与消息.如何在视图中访问重定向消息?我的路线:
Route::group(['middleware' => 'web'],function(){
Route::get('/page', function () {
return redirect('/')->withMessage(["warning"=> ["yeah","test"]]); // According official docs, this should work.
});
Route::get('/', 'Page@front');
});
Run Code Online (Sandbox Code Playgroud)
我的页面控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\News;
use App\PageContact;
use Session;
class Page extends Controller{
public function front(Request $Request){
return view('index')->withNews("news");
}
Run Code Online (Sandbox Code Playgroud)
重要的是:是的,我的网页已经包含在网络中间件中.请避免发布Laravel 3或Laravel 4解决方案.
php ×5
laravel-5 ×4
laravel ×3
laravel-4 ×3
laravel-5.2 ×2
codeception ×1
eloquent ×1
forms ×1
json ×1
redirect ×1
validation ×1