2015-04-26 70 views
1

嗨,我試圖將表單數據存儲在數據庫中,然後將該數據顯示爲網頁上的對象。然後我希望能夠編輯該對象的數據並用新信息更新數據庫。用php和laravel顯示錶單數據

就像在博客/ Facebook的

感謝你能提供具體的幫助一個評論/後段/什麼我現在有如下。我使用laravel 4.2和sqlite來管理一切。但我認爲這個問題與我的路線有關。

祝您有美好的一天。

這是我的目錄佈局

- app 
 

 
-- database 
 
---posts.sql 
 
---comments.sql 
 

 
-- views 
 
--- layouts 
 
------- default.blade.php 
 
--- pages 
 
------- home.blade.php 
 
------- edit.blade.php 
 
--- includes 
 
------- head.blade.php 
 
------- header.blade.php 
 
------- footer.blade.php 
 

 
--routes.php

目前,我有我試圖用添加/編輯互動兩個數據庫/刪除行。

兩者都遵循這種格式

/* Posts database in SQLite. */ 
 
drop table if exists posts; 
 

 
create table posts (
 
    id integer primary key autoincrement, 
 
    number int, /* 0 = subsequent term */ 
 
    post_username varchar(40) not null, 
 
    post_title varchar(40), 
 
    post varchar(140) 
 
); 
 

 
/* Column names changed to avoid SQLite reserved words. */ 
 

 
insert into posts(number, post_username, post_title, post) values (1,'First Poster', 'first title', 'first'); 
 
insert into posts(number, post_username, post_title, post) values (2,'Second Poster', 'second title', 'second post'); 
 
/* Sample query to test insertion worked. */ 
 

 
select * from posts 
 
where post_title like "%first%" 
 
order by id;

而且我希望能夠使用像這樣的表,同時還加入了主頁上的.sql文件(S)顯示當前信息到一個新的表單的頁面。

@section('title') Home Page 
 
@stop 
 

 
@extends('layouts.default') 
 
@section('content') 
 

 

 
<form class="form-horizontal"> 
 
<fieldset> 
 

 

 
<!-- Form Name --> 
 
    <form method="get" action="add_post"> 
 
    <table> 
 
    <tr><td>Post Username: </td><td><input type="text" name="post_username"></td></tr> 
 
    <tr><td>Post Title: </td><td><input type="text" name="post_title"></td></tr> 
 
    <tr><td>Post: </td><td><input type="text" name="post"></td></tr> 
 
    <tr><td colspan=2><input type="submit" value="add_post"> 
 
         <input type="reset" value="Reset"></td></tr> 
 
    <table> 
 
    </form> 
 
    
 
@if (count($posts) == 0) 
 

 
<p>No Current Posts</p> 
 
    
 
    <table class="bordered"> 
 
    <thead> 
 
    <tr><th>No.</th><th>Post Username</th><th>Post Title</th><th>Post</th></tr> 
 
    </thead> 
 
<tbody> 
 
    
 
@foreach($posts as $post) 
 

 
    <tr><td>{{{ $post->number }}}</td><td>{{{ $post->post_username }}}</td><td>{{{ $post->post_title }}}</td><td>{{{ $post->post }}}</td></tr> 
 

 
@endforeach 
 

 
@stop

但它不工作,我不知道爲什麼。

請幫多媒體書呆子誰拿起一個網頁編程課程,只是實現的錯誤:)

路由頁:

<?php 
 

 
    $post_username = Input::get('post_username'); 
 
    $post_title = Input::get('post_title'); 
 
    $post = Input::get('post'); 
 
    
 
Route::get('/', function() 
 
{ 
 
return View::make('pages.home'); 
 
}); 
 

 
Route::get('/comments', function() 
 
{ 
 
return View::make('pages.comments'); 
 
}); 
 

 
/* 
 
Currently crashing website 
 
Route::get('add_post', function() 
 
{ 
 
    $sql = "insert into posts (post_username, post_title, post) values (?, ?, ?)"; 
 
    DB::insert($sql, array($post_username, $post_title, $post)); 
 
}); 
 

 
*/

回答

0

更改您路線這個:

<?php 

Route::get('/', function() 
{ 
return View::make('pages.home'); 
}); 

Route::get('/comments', function() 
{ 
return View::make('pages.comments'); 
}); 

// Currently crashing website 
Route::get('add_post', function() 
{ 
    $post_username = Input::get('post_username'); 
    $post_title = Input::get('post_title'); 
    $post = Input::get('post'); 

    $sql = "insert into posts (post_username, post_title, post) values (?, ?, ?)"; 
    DB::insert($sql, array($post_username, $post_title, $post)); 
}); 

,而不是在路由內部保存邏輯,你應該在控制器中寫入。有一些很好的教程,如LaracastCulttt,請訪問它們並更改您的方法。看,如果有幫助。

+0

你好,謝謝你的回覆,但是這仍然沒有添加任何東西到數據庫中。 – Judgeharm

+0

您是否在database.php文件中添加了與數據庫連接相對應的必填字段?控制器文件夾下的 –

+0

? – Judgeharm