所以我向我提出了一个小的ajax请求reviewsController@export.
现在当console.log()我成功方法中的数据时,ajax响应显示正确的数据.但是我的CSV尚未下载.所以我拥有所有正确的信息并且基本上创建了csv.
我认为这可能与设置标题有关吗?
public function export()
{
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");
$reviews = Reviews::getReviewExport($this->hw->healthwatchID)->get();
$columns = array('ReviewID', 'Provider', 'Title', 'Review', 'Location', 'Created', 'Anonymous', 'Escalate', 'Rating', 'Name');
$file = fopen('php://output', 'w');
fputcsv($file, $columns);
foreach($reviews as $review) {
fputcsv($file, array($review->reviewID,$review->provider,$review->title,$review->review,$review->location,$review->review_created,$review->anon,$review->escalate,$review->rating,$review->name));
}
exit();
}
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么,或者Laravel有什么可以满足的吗?
使用Yii 2 basic不是高级版本.
我有一个crud管理员身份验证系统.其中只存储数据库中的id,用户名和密码.当用户登录时,如果用户名和密码正确,则会登录.
但是我现在想要使这些密码安全,所以我想盐和散列它们.这是我发现难以做到的部分或更多,所以在哪里放东西.
第1部分: 我有一个AdminController,它与我的用户模型Create.php页面一起. 第2部分: 我有一个siteController,它与LoginForm模型和login.php页面一起登录.
我将首先讨论第一部分,因为它显然必须在这里实际生成一个哈希密码.
AdminController:
public function actionCreate()
{
$model = new User();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
]);
}
}
Run Code Online (Sandbox Code Playgroud)
user.php的
<?php
namespace app\models;
use yii\base\NotSupportedException;
use yii\db\ActiveRecord;
use yii\web\IdentityInterface;
use yii\data\ActiveDataProvider;
/**
* User model
*
* @property integer $id
* @property string $username
* @property string $password
*/
class User extends ActiveRecord implements IdentityInterface
{
/**
* …Run Code Online (Sandbox Code Playgroud) 这应该非常简单,我不敢相信像Wordpress这样规模的公司无法为用户提供一种非常简单的换行方式。
我知道如何使用文本标签并使用html(我是开发人员)对页面进行编码。但是我的客户绝对不知道html是什么,因此他们显然不能使用它。
客户要做的就是在行之间建立一个“线间空间”,即我们的断线。他们只想使用可视化编辑器。
现在,当他们开始键入并按下Enter键时,它会创建&nbsp; 或关闭段落标签。
许多文章说,Shift + Enter会产生一个,但是这100%并没有像我尝试过的那样。
Ive尝试了大多数文章建议使用的名为“ tinymce advanced”的插件。但这不能解决问题。
对于没有html知识的普通用户,有什么方法可以只使用可视化编辑器并创建br行而无需实际使用代码?
本质上,我有一个页面可以更新用户记录。
{!! Form::label('username', 'Username:') !!}
{!! Form::text('username', null, ['class'=>'form-control'])!!}
{!! Form::label('password', 'Password:') !!}
{!! Form::password('password',['class'=>'form-control'])!!}
{!! Form::label('name', 'Name:') !!}
{!! Form::text('name', null, ['class'=>'form-control'])!!}
{!! Form::label('email', 'Email:') !!}
{!! Form::text('email', null, ['class'=>'form-control'])!!}
Run Code Online (Sandbox Code Playgroud)
现在我面临两个问题:
1)例如,如果我不想更改用户密码,而只是编辑名称,它将更新用户密码为空(或“”)。这是因为提交时文本框为空。
这是我在控制器中尝试的过程,没有任何喜悦
public function update($id, Request $request)
{
$user = User::findOrFail($id);
$newPassword = $request->only('password');
if(empty($newPassword)){
$user->update($request->except('password'));
}else{
$user->update($request->all());
}
return redirect('users');
}
Run Code Online (Sandbox Code Playgroud)
有人知道我该如何解决吗?我希望laravel有办法处理这些事情。
作为参考,我正在使用laravel 5。
我已经提出了我的ajax请求,它运行良好并返回JSON.
但我该如何使用它?
我的回答是这样的
[{
"id": "5",
"reviewID": "2389",
"serviceID": "50707",
"title": "well done"
}]
Run Code Online (Sandbox Code Playgroud)
现在在我的成功函数中,我试图使用这样的数据:
success: function(data) {
alert('Success Alert');
$('#myModalLabel').text('Review:' + data.title);
},
Run Code Online (Sandbox Code Playgroud)
这只是表明
[object Object]
Run Code Online (Sandbox Code Playgroud)
我该如何使用这些数据?
是的,我只想要一个非常简单的ajax请求来实现这个功能.你看到的新的yii 2.0框架.
在我看来index.php:
function sendFirstCategory(){
var test = "this is an ajax test";
$.ajax({
url: '<?php echo \Yii::$app->getUrlManager()->createUrl('cases/ajax') ?>',
type: 'POST',
data: { test: test },
success: function(data) {
alert(data);
}
});
}
Run Code Online (Sandbox Code Playgroud)
现在,当我调用它时,我认为应该将我的CasesController转到一个名为actionAjax的动作.
public function actionAjax()
{
if(isset($_POST['test'])){
$test = "Ajax Worked!";
}else{
$test = "Ajax failed";
}
return $test;
}
Run Code Online (Sandbox Code Playgroud)
编辑::
好的,所以这可以在这里工作.我收到弹出的警报,其中包含$ test的新值.但是我希望能够在php中访问这个值,因为最终我将从数据库访问数据,并且想要查询和做各种其他事情.
那么我现在如何在php中使用此变量而不仅仅是弹出警报()?
在php中我想计算我在foreach循环中的计数是否是3 + 1的倍数.
例如,如果它是4,7,10,13,16,你就明白了.
if( $count % 3 != 0)
Run Code Online (Sandbox Code Playgroud)
这是最接近我发现答案的人