我不知道如何在 laravel eloquent orm 中同时使用 update 和 limit 方法。
$affectedRows = Promo::where('used','=',0)
->update(array('user_id' => Auth::user()->id))
->limit(1); // Call to a member function limit() on a non-object
//->take(1); // Call to a member function take() on a non-object
Run Code Online (Sandbox Code Playgroud)
我尝试了 limit 和 take 方法。
我只想做一个结果就是更新。
但我认为,我不能在更新时使用限制或采取方法。
有没有办法通过 eloquent 只更新一行?
添加 :
雄辩的 ORM
$affectedRows = Promo::where('user_id','=',DB::raw('null'))->take(1)
->update(
array(
'user_id' => Auth::user()->id,
'created_ip' =>Request::getClientIp(),
'created_at' => new DateTime,
'updated_at' => new DateTime
)
);
Run Code Online (Sandbox Code Playgroud)
查询生成器
$affectedRows = DB::table('promos')->whereNull('user_id')
->take(1)
->update(array(
'user_id' => Auth::user()->id, …Run Code Online (Sandbox Code Playgroud) 我正在创建一个简单的博客,用户可以在其中添加、更新和查看帖子。我已经在帖子中实现了查看次数功能,该功能显示了帖子的查看次数。为此,我所做的是:
创建了一个事件监听器:
Event::listen('post.viewed', 'PostHandler@updatePostViewsAction');
创建了PostHandler和updatePostViewsAction
class PostHandler
{
public function handle()
{
//
}
public function updatePostViewsAction( $post )
{
// Update view counter of post
$post->views_count = $post->views_count + 1;
$post->save();
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,并且观看次数正在成功更新。但后来我决定对视图进行唯一计数。为此,我尝试使用 cookie,即在用户计算机上创建cookie,每当他查看帖子并增加views_count. 如果用户再次回来并再次查看帖子,请检查是否有可用的 cookie,如果可用则不要增加views_count,否则增加。下面是我是如何实现的:
class PostHandler
{
public function handle()
{
//
} …Run Code Online (Sandbox Code Playgroud) 我被困在如何在生产环境中运行工匠命令。我使用 Hostgator(共享主机)作为我的托管公司。我试图在我的 win8 机器上通过 ftp 客户端运行命令。所有命令都不起作用。它给出了“无效命令”错误。
任何人都可以帮忙吗?!谢谢。下面是我尝试运行的示例命令。
php artisan migrate
Run Code Online (Sandbox Code Playgroud) 尝试通过基于 Laravel 框架的脚本上传图像并遇到此错误:
Call to undefined function Intervention\Image\finfo_buffer()
* Checks if string contains binary image data
*
* @param mixed $input
* @return boolean
*/
private function isBinary($input)
{
$mime = finfo_buffer(finfo_open(FILEINFO_MIME_TYPE), (string) $input);
return substr($mime, 0, 4) != 'text';
}
Run Code Online (Sandbox Code Playgroud)
我对 Laravel 并不是很精通,所以希望得到一些帮助。
问候
好的,所以我的问题是,我的 ajax 调用没有正确更新。它与我拥有的许多功能相同,只是不更新值。虽然,我可以在 mysql 中自行运行查询,并且可以正常更新。功能如下:
/*
* "elerts/quicksave" > Update elert from all screen
*/
public function quicksave($id)
{
$data = (object)Input::get();
$ev = Events::find($id);
$ev->limit = $data->limit;
$ev->EventEnabled = $data->EventEnabled;
$ev->SundayStart = $data->SundayStart;
$ev->MondayStart = $data->MondayStart;
$ev->TuesdayStart = $data->TuesdayStart;
$ev->WednesdayStart = $data->WednesdayStart;
$ev->ThursdayStart = $data->ThursdayStart;
$ev->FridayStart = $data->FridayStart;
$ev->SaturdayStart = $data->SaturdayStart;
$ev->save();
$queries = DB::getQueryLog();
$last_query = end($queries); dd($last_query);
return "Your eLert has been saved!";
}
Run Code Online (Sandbox Code Playgroud)
下面是一个被传递的示例 ID 和一个被传递的 $data 对象的示例。
$id = '107';
object(stdClass)#137 (9) { ["limit"]=> string(3) …Run Code Online (Sandbox Code Playgroud) 我对我做错了什么感到迷茫,我看不到其他人有这个问题,所以一定是我。
我刚刚设置Indatus\Dispatcher\ServiceProvider并让一切正常运行。出于测试目的,我只是每 5 分钟运行一次计划事件以添加日志条目。
出于某种原因,它正在复制日志条目。
这是输出的样子:
[2014-10-26 19:00:15] local.INFO: This is a test [] []
[2014-10-26 19:00:15] local.INFO: This is a test [] []
[2014-10-26 19:05:12] local.INFO: This is a test [] []
[2014-10-26 19:05:13] local.INFO: This is a test [] []
[2014-10-26 19:10:09] local.INFO: This is a test [] []
[2014-10-26 19:10:10] local.INFO: This is a test [] []
Run Code Online (Sandbox Code Playgroud)
这是实际的预定fire()事件:
public function fire()
{
Log::info('This is a test');
}
Run Code Online (Sandbox Code Playgroud)
的schedule():
public function schedule(Schedulable …Run Code Online (Sandbox Code Playgroud) 有人可以向我解释为什么这有效
$profile = Profile::all()->random(8);
Run Code Online (Sandbox Code Playgroud)
这不起作用
$profile = Profile::where('gender_id', '=', 1)->random(8);
Run Code Online (Sandbox Code Playgroud)
我收到错误说
调用未定义的方法 Illuminate\Database\Query\Builder::random()
我正在尝试使用 Laravel Mail 发送电子邮件并获取未定义的变量:视图中的数据。这是我的控制器代码。
$insured = Claim::where('id', '=', $claim_id)->first()->toArray();
$workshop = Workshop::where('id', '=', $insured['workshop_id'])->first()->toArray();
$data = Document::whereRaw('claim_id = ' . $claim_id . ' AND (documents.status = 10 OR documents.status = 12)')
->join('docs','documents.doc_id', '=', 'docs.id')
->join('claims','documents.claim_id', '=', 'claims.id')
->get(array('docs.email_text', 'claim_of', 'vehicle_no'))->toArray();
Mail::send('emails.workshop', $data, function($message)
{
$message->to('someone@somedomain.com')->subject('Testing');
});
Run Code Online (Sandbox Code Playgroud)
看法
{{ $data[0]['claim_of'] }}
<br />
{{ $data[0]['vehicle_no'] }}
<br />
<?php $i = 1 ; ?>
@foreach($data as $key => $claim)
<p> {{ $i }}. {{ $claim->email_text }}</p>
<?php $i++ ; ?>
@endforeach …Run Code Online (Sandbox Code Playgroud) 我得到一个格式为String base64的图像,我想将该字符串解码为图像并将其保存到laravel中的公共文件夹中。
这是我的控制器:
//decode string base64 image to image
$image = base64_decode($request->input('ttd'));
//create image name
$photo_name = time().'.png';
$destinationPath = public_path('/uploads');
//save image to folder
$image->move($destinationPath, $photo_name);
$img_url = asset('/uploads'.$photo_name);
$data = new Transaction();
$data->transaction_id = $request->input('fa_transaction_id');
$data->user_id = $request->input('userid');
$data->photo_name = $photo_name;
$data->photo_url = $img_url;
$data->save();
Run Code Online (Sandbox Code Playgroud)
当我尝试echo $ image时,我得到了解码值,而对于$ photo_name我也得到了该值,但是当函数运行时出现此错误
Call to a member function move() on string
Run Code Online (Sandbox Code Playgroud)
如何解决这个错误?