# زبان های اسکریپتی > PHP > Laravel Framework >  مشکل با فساد DB

## sempaisaleh

با سلام خدمت دوستان
یه روت نوشتم که به کنترلر بره. حالا توی کنترلر گفتم که بره توی دیتابیس یه select بزنه ولی وقتی کد DB رو میذارم ارور میده.
*<?php namespace* App\Http\Controllers;

*use* Illuminate\Foundation\Bus\DispatchesCommands;
*use* Illuminate\Routing\Controller *as* BaseController;
*use* Illuminate\Foundation\Validation\ValidatesRequests  ;
*use* Illuminate\Support\Facades\DB;


*class* Controller *extends* BaseController {

   *use* DispatchesCommands, ValidatesRequests;
 *public function* testmethod()
 {
     *if*(DB::_select_(*'select* _*_* from user where username = :username1 '*, [*'username1'* =>$txtuser]))
      {
         *return* view(*'loginuser1'*,[*'name1'*=>$txtuser])
      }

 }
}

----------


## plague

برادر کدت رو که بد گزاشتی قابل خوندن نیست
متن ارروری که میگیری رو هم ننوشتی که از خود کدت مهم تره 
فکر نمیکنم سازنده لاراول هم بتونه کمکی بکنه

----------


## sempaisaleh

با سلام
کد که از تو سیستم خودم میبینم درست نشون میده ولی چشم. الان فایلش رو ضمیمه میکنم. ارور خاصی نمیده. من هر موقع کار میکنم موقع ارورهاش فقط میگه whoops look like something went wrong

----------


## plague

کدی که اینجا گزاشتی رو نگاه کن .... میبینی اونهمه کدهای html آضافه رو ؟ بخاطر اینه که وقتی کد میزاری اینجا تو تگ کد نباید دیگه تگی بزاری روش مثلا رنگ بهش بدی یا چپ و راست ببری نوشته ها رو وگرنه اینجوری خراب میشه .... ویرایش کن و کد رو بدون هیچ تگ دیگه ای بزار

وقتی اررور میده زیر whoops look like something went wrong  جزئیات اررور و صفحه اررور رو مینویسه که اگه یه  سرچ کنی هم متوجه میشی برا چیه

----------


## sempaisaleh

> کدی که اینجا گزاشتی رو نگاه کن .... میبینی اونهمه کدهای html آضافه رو ؟ بخاطر اینه که وقتی کد میزاری اینجا تو تگ کد نباید دیگه تگی بزاری روش مثلا رنگ بهش بدی یا چپ و راست ببری نوشته ها رو وگرنه اینجوری خراب میشه .... ویرایش کن و کد رو بدون هیچ تگ دیگه ای بزار
> 
> وقتی اررور میده زیر whoops look like something went wrong  جزئیات اررور و صفحه اررور رو مینویسه که اگه یه  سرچ کنی هم متوجه میشی برا چیه


اینم کد اصلی
<?php namespace App\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesCommands;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests  ;
use Illuminate\Support\Facades\DB;


class Controller extends BaseController {

    use DispatchesCommands, ValidatesRequests;
 public function testmethod()
 {
     if(DB::select('select * from user where username = :username1 ', ['username1' =>$txtuser]))
      {
         return view('loginuser1',['name1'=>$txtuser])
      }

 }
}

در خصوص ارور هم باید بگم هیچی نشون نمیده زیرش. اینم تصویرش
Untitled.jpg

----------


## sempaisaleh

دوستان کسی نیست راهنمایی کنه؟ (پروژه این هفته مون. مثل چیز تو گل گیر کردم خخخخخ)

----------


## hamedarian2009

سلام. اول debug رو فعال کنید ببینیم ارورتون چیه بعد خودتون هم میتونید با ارور مشکلتون رو حل کنید. توی فایل env مقدار APP_DEBUG رو برابر true قرار بدین و متن ارور رو اینجا قرار بدین

----------


## sempaisaleh

> سلام. اول debug رو فعال کنید ببینیم ارورتون چیه بعد خودتون هم میتونید با ارور مشکلتون رو حل کنید. توی فایل env مقدار APP_DEBUG رو برابر true قرار بدین و متن ارور رو اینجا قرار بدین


برابر True هست ولی بازم چیزی نشون نمیدم

----------


## plague

کد دتابیس رو برداری درست کار میکنه ؟ 
من خیلی کار نکردم با لاراول ووقتی هم کار میکنم از orm استفاده میکنم نه فساد دیتابیس 
ولی اینی که من میبینم $txtuser  تعریف نشده و معلوم نیست از کجا اومده این میتونه باعث اررور باشه

----------


## sempaisaleh

> کد دتابیس رو برداری درست کار میکنه ؟ 
> من خیلی کار نکردم با لاراول ووقتی هم کار میکنم از orm استفاده میکنم نه فساد دیتابیس 
> ولی اینی که من میبینم $txtuser  تعریف نشده و معلوم نیست از کجا اومده این میتونه باعث اررور باشه


بله درست میشه. جاش textuser  میگم return کن مشکلی نداره. اونم از یه فایل دیگه که کنترلر رو rout میکنه میاد به این سمت

----------


## sempaisaleh

از بیخ و بونیه مشکل داره.
دوتا view به نام های Home1 و userlogin1 دارم. حالا میام دو تا Rout مینویسم که بتونم به اونا دست پیدا کنم دا خل فایل rout.
Route::get('loginu', function () {
   $users=DB::select('select * from user where username = :username1 ', ['username1' => $txtuser]);
   if ($users<>'') {
        return view('loginuser1');
    }
});

Route::get('userlogin', function()
{
    return view('home1');
});

بعد میام داخل فایل Home1 این کد مینویسم که بیاد یوزر و پسورد رو بگیره و به Loginu که قبلا به view از قبل طراحی شده به نام loginuser1 ارسال کنه. که توی روت نوشتم که قبلش یه سرچ کن اگه وجود داشت بره به View بعدی که همون loginuser1 باشه.
<html>
   <body>
<form action="localhost/laravel/public/loginu" method="post">
<input   type ="text"   name="txtname">
<input   type ="password"   name="txtpass">
<input   type ="submit"   name="submit" value= "Submit">
</form>
   </body>
</html>

اینم کد loginuser1 هست.
<html>
   <body>
hi ,<?php echo $name1?>
   </body>
</html>

حالا میزنم http://localhost/laravel/public/userlogin میره صفحه Home1 رو میاره بعد که داده وارد میکنم و دکمه submit رو میزنم دیگه فایل loginuser1 نمیاد. حالا چه کل کد دیتابیس توش باشه چه فقط نوشته باشم که فایل loginuser1 رو return کن. هیچ کدومش رو نمیاره.

----------


## sempaisaleh

دوستان کسی میدونه این خط کلا چه مشکلی داره؟ شاید کاستی داره یا کلا برای ارتباط با دیتابیس به غیر از این خط خطوط دیگه ای هم باید نوشت.
 $users=DB::select('select * from user where username = :username1 ', ['username1' => $txtuser]);

----------


## postpost

دلیلی داره اینجوری نمیزنی مطابق رکومندیشن خود سایت لاراول؟

$users = DB::table('user')->select('username', $txtuser)->get();

اینجوری دیگه مشکلات اینجکت و اینجور چیزها را نداری. 

اصلا مزه لاراول به اینه که اینجوری کنیم. البته خود الکوینت که مثل جادو گری میمونه.

----------

