我有一个系统,我需要列出一个任意数量的员工,其中包含一周中每天的文本字段,可以输入"小时工作"值.
所以我需要生成一个动态行数的表,每行将包含7个文本字段.我只是想知道在为这些字段分配ID时使用的最佳约定是什么,以便在我的后端收到输入数据后可以轻松迭代?
每行都有一个与代表员工ID的行相关联的ID号.
能够做到这样的事情真是太棒了:
foreach($rows as $row)
{
$id = $row['id'];
$employee = Employee::find($id);
foreach($row['hoursWorked'] as $dailyHours)
{
$timecard = new Timecard();
$timecard->hours = $dailyHours;
$employee->timecards->insert($timecard);
}
}
Run Code Online (Sandbox Code Playgroud)
在HTML方面构建表单和ID的最佳方法是什么,以使其尽可能轻松?
作为旁注,我正在Laravel 3框架内工作,以防其他任何解决方案开放.
我正在使用Laravel的最新版本:3.2.1.
当我在终端上运行时:
php artisan migration:install
我有这个错误:
could not find driver
我在谷歌和Laravel论坛上做了一些搜索,没什么.
编辑
我已经激活了扩展,这就是我所拥有的phpinfo()
--with-iconv' '--with-pdo-mysql=mysqlnd' '--with-pdo-pgsql=/opt/lampp/postgresql' '--with-pdo它看起来像我的pdo已设置.
这是我的形象 phpinfo()

编辑2 我做了一点测试:
<?php
try {
$dbh = new PDO("mysql:host=localhost;dbname=jjimobiliaria", "root", "");
foreach($dbh->query('SELECT * from pdo_test') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
Run Code Online (Sandbox Code Playgroud)
而且回报:
Array ( [id] => 1 [0] => 1 [test_column] => TESTING!!! [1] => TESTING!!! )
Run Code Online (Sandbox Code Playgroud)
所以我的PDO工作得很好
我有一个列表,其中列出了我的"服务器"表中的所有"服务器",并在我的视图中返回了分页.我一直在努力弄清楚如何排序(asc和desc,如果可能)和过滤(在结果中搜索)工作.
这是我的控制器代码:
$servers = Server::paginate(5);
return View::make('servers.list')
->with('game', '')
->with('servers', $servers);
Run Code Online (Sandbox Code Playgroud)
这是我的排序视图代码:
<ul class="nav">
<li class="active"><a href="#"><i class="icon-angle-down"></i>{{ Lang::line('servers.rank')->get() }}</a></li>
<li><a href="#">{{ Lang::line('servers.date')->get() }}</a></li>
<li><a href="#">{{ Lang::line('servers.language')->get() }}</a></li>
<li><a href="#">{{ Lang::line('servers.uptime')->get() }}</a></li>
<li>{{ HTML::link(URL::full() .'?sort=votes', Lang::line('servers.votes')->get()) }} </li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我希望通过简单的锚链接进行排序,点击Votes或Rank或Date将返回带有该排序的数据.单击当前选定的相同排序锚将反转排序方向.
我还有一些"过滤器"选项,例如类别和整数范围,在应用时会"过滤"/搜索表并返回结果与过滤器之前选择的排序相同.
分页类是全部/任何一种可能吗?如果不是我的方式可能是什么?使用laravel时不确定最好的方法.
我的应用程序是用于企业网站的CMS.我有一个名为business_info的表,如下所示:
id | field | value
-----------------------------------------
1 | name | Testing Company
2 | official name | Testing Company LLC
3 | main_location | The Bay Area
4 | year | 1999
5 | address | 55 Street Rd
6 | suite | Unit 5
7 | city | Anytown
8 | state | CA
9 | zip | 55555
10 | tollfree | 1(888) 555-5555
Run Code Online (Sandbox Code Playgroud)
我不认为当前的Eloquent模型能够有效地管理这些信息,所以我扩展了它并开始研究一个更有用的模型.我希望能够做到这样的事情:
$business_info->zip = "66666";
$business_info->save();
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止,但我不知道如何继续:
class Business_Info extends Eloquent
{
public static …Run Code Online (Sandbox Code Playgroud) 我是laravel的新手,并且很难找到将一个表导出到csv的方法.我在控制器类中尝试了以下代码,但它给了我一个错误:
public function get_export()
{
$table = Cpmreport::all();
$file = fopen('file.csv', 'w');
foreach ($table as $row) {
fputcsv($file, $row);
}
fclose($file);
return Redirect::to('consolidated');
}
Run Code Online (Sandbox Code Playgroud)
Cpmreport的模型类:
class Cpmreport extends Eloquent
{
public static $table='cpm_report';
}
Run Code Online (Sandbox Code Playgroud)
错误 :
Message:
fputcsv() expects parameter 2 to be array, object given
Location:
C:\xampp\htdocs\cpm_report\application\controllers\cpmreports.php on line 195
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
伙计,我有一个问题是将记录保存到数据库中.正如我理解错误,它似乎不存在表中的'id_purchase'.但确实如此.我正在使用的代码如下:
<?php
class Purchproducts_Controller extends Base_Controller {
public $restful = true;
public function get_index()
{
$purchases = Purchproduct::where('id_hostel', '=', Session::get('id_hostel'))->get();
$response = array();
foreach($purchases as $purch){
$response[] = $purch->attributes;
}
return json_encode($response);
}
public function post_create()
{
$data = Input::json();
$purchase = Purchproduct::create(
array(
'id_hostel' => Session::get('id_hostel'),
'id_products' => $data->id_products,
'id_purchase,' => $data->id_purchases,
'qty' => $data->qty
)
);
return json_encode($purchase->attributes);
}
}
Run Code Online (Sandbox Code Playgroud)
错误屏幕:
Unhandled Exception
Message:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'id_purchase,' in 'field list'
SQL: INSERT INTO …Run Code Online (Sandbox Code Playgroud) Laravel 4 中有一个dateTime()函数可以帮助创建这些列。但在Schema\TableLaravel 3 中,我只看到一个date()函数,它是:
public function date($name)
{
return $this->column(__FUNCTION__, compact('name'));
}
Run Code Online (Sandbox Code Playgroud)
看起来它只是创建了一个 DATE 列。不过,我也看到了这个神奇的功能:
public function __call($method, $parameters)
{
if (isset(static::$macros[$method]))
{
array_unshift($parameters, $this);
return call_user_func_array(static::$macros[$method], $parameters);
}
throw new \Exception("Method [$method] does not exist.");
}
Run Code Online (Sandbox Code Playgroud)
有没有办法使用此函数创建 DATETIME 列?我该怎么办?在文档中找不到此信息。
我曾尝试在Controller中显示错误消息,但它不起作用,但是当我尝试时dd,它可以正常工作
我的代码:
if ($validation->fails())
{
/*Doesn't work
foreach ($validation->fails() as $messages) {
$messages // Doesn't work
}
*/
dd($validation->errors); //This works
}
Run Code Online (Sandbox Code Playgroud) 我收到这个错误:
call_user_func_array() expects parameter 1 to be a valid callback, class 'Symfony\Component\HttpFoundation\LaravelRequest' does not have a method 'url'
Run Code Online (Sandbox Code Playgroud)
我正在使用的代码是:
routes.php文件:
<?php
Route::post('', 'app@check');
Route::get('', 'app@check');
Route::post('game', 'app@game');
Route::get('game', 'app@game');
Route::get('terminos', 'app@terminos');
Route::post('save', 'scores@savescore');
Route::get('scores', 'scores@scorelist');
Route::get('scores2468', 'scores@showscores');
Event::listen('404', function()
{
//return Response::error('404');
echo "Error 404: \n";
echo Request::url();
});
Event::listen('500', function()
{
return Response::error('500');
});
Route::filter('before', function()
{
// Do stuff before every request to your application...
});
Route::filter('after', function($response)
{
// Do stuff after every request to your application... …Run Code Online (Sandbox Code Playgroud) 我的问题是我可以在点击注销链接后正确注销,但如果我点击浏览器的后退按钮,仍然能够看到实际上不应该看到我的身份验证中间件进程的页面内容.我读过我可以通过禁用缓存来防止这种情况但是不认为这是最好的方法,所以我怎么能以更好的方式做到这一点?我的登出功能是
public function logout()
{
Auth::logout();
Session::flush();
return redirect('login');
}
Run Code Online (Sandbox Code Playgroud)
我的路线是:
Route::get('logout','Homecontroller@logout');
Run Code Online (Sandbox Code Playgroud)
Thanx提前